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

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

▶ デューク・ユニバーシティの特許一覧 ▶ ブラウン ユニバーシティの特許一覧

特許7431273自律型車両用動作計画及び再構成可能な動作計画プロセッサ
<>
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図1
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図2
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図3
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図4
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図5
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図6A
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図6B
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図6C
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図6D
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図7
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図8
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図9
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図10
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図11A
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図11B
  • 特許-自律型車両用動作計画及び再構成可能な動作計画プロセッサ 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-05
(45)【発行日】2024-02-14
(54)【発明の名称】自律型車両用動作計画及び再構成可能な動作計画プロセッサ
(51)【国際特許分類】
   G05D 1/43 20240101AFI20240206BHJP
【FI】
G05D1/02 H
【請求項の数】 10
(21)【出願番号】P 2022054900
(22)【出願日】2022-03-30
(62)【分割の表示】P 2018564836の分割
【原出願日】2017-06-09
(65)【公開番号】P2022084895
(43)【公開日】2022-06-07
【審査請求日】2022-04-22
(31)【優先権主張番号】62/348,230
(32)【優先日】2016-06-10
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/451,816
(32)【優先日】2017-01-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503164937
【氏名又は名称】デューク・ユニバーシティ
【氏名又は名称原語表記】DUKE UNIVERSITY
(73)【特許権者】
【識別番号】518223753
【氏名又は名称】ブラウン ユニバーシティ
(74)【代理人】
【識別番号】100169904
【弁理士】
【氏名又は名称】村井 康司
(74)【代理人】
【識別番号】100221372
【弁理士】
【氏名又は名称】岡崎 信治
(72)【発明者】
【氏名】ダニエル ジェイ. ソリン
(72)【発明者】
【氏名】ジョージ ディー. コニダリス
(72)【発明者】
【氏名】ウィリアム フロイド-ジョーンズ
(72)【発明者】
【氏名】ショーン マリー
【審査官】牧 初
(56)【参考文献】
【文献】特開2011-075382(JP,A)
【文献】特開2012-190405(JP,A)
【文献】米国特許第06629037(US,B1)
【文献】特開2010-061293(JP,A)
【文献】特開2008-065755(JP,A)
【文献】特開2012-243029(JP,A)
【文献】特開2005-032196(JP,A)
【文献】特開2007-257274(JP,A)
【文献】特表2007-531110(JP,A)
【文献】米国特許出願公開第2017/0120448(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00-1/12
(57)【特許請求の範囲】
【請求項1】
ハードウェアプロセッサと、
記憶装置と、
前記記憶装置に保存され、エッジによって接続された複数のノードを含み、動的オブジェクトが存在しない環境を表す計画グラフと、
を含み、
各ノードは、自律型車両の状態、動作環境、又は前記自律型車両の状態と前記動作環境との両方を画定する時間及び変数を暗示的又は明示的に表し、
前記ハードウェアプロセッサは、
ある環境の1以上の動的オブジェクト又は静的オブジェクトである識別済みオブジェクトを表す障害物の表現と、前記環境の識別済みの動的オブジェクトを表す障害物のサンプル軌道を受信し、
前記サンプル軌道を考慮して障害物表現と衝突することになる計画グラフ内の各エッジに沿った衝突可能性の確率表現を調整し、
衝突のコストと衝突可能性を考慮した通路を決定し、
前記衝突のコストは、前記障害物の特徴に基づいて決定され、各エッジに割り当てられる、
動作計画装置。
【請求項2】
前記計画グラフは、前記エッジに関連付けて保存された少なくとも1つのチャネルを含む、請求項1に記載の動作計画装置。
【請求項3】
前記少なくとも1つのチャネルは、前記衝突のコストを含む、請求項2に記載の動作計画装置。
【請求項4】
前記少なくとも1つのチャネルは、リスクを含む、請求項2又は3に記載の動作計画装置。
【請求項5】
複数の衝突検出ユニットをさらに備え、前記複数の衝突検出ユニットの各々は、前記障害物と前記計画グラフの複数のエッジの各1つとの間の衝突を識別する、請求項4に記載の動作計画装置。
【請求項6】
第1のプログラミングフェーズを実行して、特定自律型車両及び任意に特定シナリオ用の動作計画モジュールを構成することであって、
第1の計画グラフを受信し、前記第1の計画グラフの各エッジについて、そのエッジに対する、任意に衝突のコストを関連付けた事前計算済み衝突データを受信することと、
前記第1の計画グラフ及び前記事前計算済み衝突データを前記動作計画モジュールの記憶装置に保存することと、
前記第1の計画グラフのトポロジを、最短経路アルゴリズムを実装するハードウェアユニットのファブリックにマッピングすることと、
を含む第1のプログラミングフェーズの実行と、
前記特定自律型車両及び任意に前記特定シナリオ用の前記動作計画モジュールを用いて、リアルタイム動作計画を実施することと、
第2のプログラミングフェーズを実行して、新たな特定自律型車両、新たな特定シナリオ、又は新たな特定自律型車両と新たな特定シナリオとの両方用に前記動作計画モジュールを構成することであって、
第2の計画グラフを受信し、前記第2の計画グラフの各エッジについて、そのエッジに対する、任意に衝突のコストを関連付けた事前計算済み衝突データを受信することと、
前記第2の計画グラフ及び前記事前計算済み衝突データを前記動作計画モジュールの前記記憶装置に保存することと、
前記第2の計画グラフのトポロジを、最短経路アルゴリズムを実装するハードウェアユニットのファブリックにマッピングすることと、
を含む第2のプログラミングフェーズの実行と、
を含む、動作計画モジュールを操作する方法。
【請求項7】
前記特定の自律型車両及び任意に前記特定のシナリオ用に構成される前記動作計画モジュールを用いて、リアルタイムな動作計画を実施することが、
知覚データを受信することと、
前記知覚データを前記記憶装置に保存されている前記事前計算済み衝突データと比較して衝突を特定することと、
任意に前記衝突のコストを考慮して、最短経路を特定することと、
を含む、請求項6に記載の方法。
【請求項8】
ハードウェアプロセッサと、
記憶装置と、
前記記憶装置に保存される事前計算済み衝突データであって、実行時、知覚データが受信されると、前記知覚データが、前記ハードウェアプロセッサによって、前記記憶装置に保存されている前記事前計算済み衝突データと比較されて衝突が判定される、衝突データと、
を含み、
前記ハードウェアプロセッサは、請求項6又は7に記載の方法を実行するように構成されている、
動作計画モジュール。
【請求項9】
前記記憶装置に保存される計画グラフであって、前記計画グラフが特定の自律型車両及び任意で特定のシナリオに対して実行前に生成され、前記事前計算済み衝突データが前記計画グラフのエッジに関連付けられている計画グラフをさらに含む、請求項8に記載の動作計画モジュール。
【請求項10】
最短経路モジュールをさらに備え、
前記最短経路モジュールは、
最短経路アルゴリズムを実装するハードウェアユニットと、
受信した計画グラフに基づいて、受信した計画グラフのトポロジを前記ハードウェアユニットのファブリックにマッピングするプログラマブル回路と、を有し、
前記最短経路モジュールは、特定済み衝突を実行時に受信して、計画を出力する、請求項8又は9に記載の動作計画モジュール。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律型車両用動作計画及び再構成可能な動作計画プロセッサに関する。
【背景技術】
【0002】
動作計画は、ロボットが現実世界でどのように動くべきかを決定するプロセスである。
これは、ロボットの開始位置からゴール状態までの衝突のない経路を見つけるプロセスで
ある。例えば、ロボットは、それ自体又は他のオブジェクトと衝突することなく、腕を動
かして所望のオブジェクトに到達することを望む場合がある。動作計画を実行して、移動
しつつオブジェクトを操縦する能力は、細かく制御又は設計されていない自然環境を扱う
上で非常に重要である。ロボットが最初に周囲の物理的な世界に関する情報を認識すると
、次に、コンピュータは、この認識した環境内をロボットが移動できるよう、いかにこの
物理的なロボットを制御したらよいかを決定する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
高速かつ低電力での動作計画は、自律型車両を含む多くの技術にとって重要かつ困難な
課題である。自律型車両の課題には、静的障害物(道路に残っているブームや物など)と
動的障害物(自転車、歩行者、その他の車の障害物)との衝突を避ける能力、高い頻度で
計画し直す能力、及び動的障害物がどのように動き得るかについての不確実性に対処する
能力が挙げられる。
【0004】
多くの状況において、自律型車両を含むロボットにとって主な制約となっているのは、
障害のある環境でリアルタイムの動作計画を実行する能力である。動作計画アルゴリズム
は、計算集約的という傾向があり、各動作に対して膨大な数の衝突チェックを必要とする
【0005】
自律型車両用の専用ロボット動作計画ハードウェアを提供する。自律型車両や他のロボ
ット用の動作計画用のためのシステム及び装置に加えて、自律型車両及び他のロボット用
の様々な専用のロボット動作計画ハードウェアを実装することができる再構成可能なプロ
セッサを記載する。この再構成可能プロセッサは、特定のロボット及び/又は特定のシナ
リオ用の動作計画を実行したら、別のロボット及び/又はシナリオ用の動作計画を解決す
るために再構成することができる。ここに記載の特殊なロボット動作計画ハードウェアは
、衝突検出の解決する動作計画操作及び/又は最短経路の発見する動作計画操作を、ハー
ドウェア回路内全体で、又はハードウェアプロセッサによって実行されるソフトウェアと
して、又はハードウェアプロセッサによって実行されるハードウェア回路とソフトウェア
の組み合わせとして実行することができる。このハードウェア及び/又はソフトウェアの
機能が「動作計画モジュール」により具体化されると考えることができる。
【0006】
自律型車両用動作計画システムは、複数のセンサと、その複数のセンサと電気的に通信
する複数の検出器と、その複数の検出器及び自律型車両の計算システムと電気的に通信す
る動作計画モジュールとを含むことができる。この動作計画モジュールは、自律型車両の
状態、動作環境、又は自律型車両の状態と動作環境との両方を画定する時間及び変数を暗
示的又は明示的に表す各ノードを有する計画グラフを保存する。この動作計画モジュール
は、複数の検出器から知覚データ及びサンプル軌道を受信し、サンプル軌道を考慮して前
記知覚データ内で障害物と衝突する前記計画グラフ内の各エッジに沿った衝突確率を調整
し、コスト及び衝突確率を考慮して経路を特定し、その経路を計算システムに出力する。
複数の検出器は、オブジェクト検出器及び障害物追跡器を含むことができる。ボクセルの
ストリームによって与えられるオブジェクト検出器からの障害物位置を受信し、各ボクセ
ルにコスト修正子を割り当て、これを動作計画モジュールに送信するコストグリッドを含
めることができる。
【0007】
動作計画モジュールは、ハードウェアプロセッサ及び記憶装置を含むことができる。こ
の記憶装置は、リアルタイムの動作計画に先立ってオフラインで生成された格子又は他の
確率ロードマップなどの計画グラフを保存することができる。場合によっては、この動作
計画モジュールは、平行衝突検出を実行するハードウェア衝突検出ユニットを含む。場合
によっては、この動作計画モジュールは、再構成可能な衝突検出加速を含む。事前計算済
み衝突データは、動作計画の間に知覚データが受信されると、衝突を判定するために、そ
の知覚データが動作計画モジュールのハードウェアプロセッサによって記憶装置に格納さ
れている事前計算済み衝突データと比較されるように、動作計画モジュールの記憶装置に
保存されることができる。
【0008】
実行時の操作中、計画グラフのエッジに1つ又は複数の変数の情報を割り当てることが
できる。1つ目の変数をコストとし、2つ目の変数をリスクとすることができる。このコ
スト情報は、環境内のオブジェクト検出(計算可能な軌道を有する静的オブジェクト、及
び任意で、移動するオブジェクト)に関連するコストグリッドから得ることができる。リ
スク情報は、オブジェクト追跡器の出力をサンプリングすることによって得ることができ
る。その後、動作計画モジュールは、合法的な動作計画を表すコストとリスクを考慮した
経路を生成し、ロボットがその動作計画に従って動作を行うことができるように動作計画
を出力する。
【0009】
この動作計画モジュールは、広範囲のロボット及び予想される作業シナリオに対してプ
ログラムすることが可能である。この動作計画モジュールを、異なるロボット(すなわち
、再構成可能)に対して再使用又は再プログラムすることが可能であり、別法として、こ
の動作計画モジュールを、特定ロボット用に設計することができる。ロボットの1種類と
して自律型車両が挙げられる。
【課題を解決するための手段】
【0010】
この概要は、以下の「詳細な説明」でさらに説明する概念を選択して簡略化した形で紹
介するものである。この概要は、請求する主題の重要な特徴又は本質的な特徴を識別する
ことを意図するものではなく、請求する主題の範囲を限定するために用いることを意図す
るものでもない。
【図面の簡単な説明】
【0011】
図1】一般的に静的な環境における動作計画の問題の例を示す図。
図2】自律型車両の動作計画用のリアルタイムシステムの一例を示す図。
図3】本発明の特定の実施形態による動作計画モジュールの例示的なアーキテクチャを示す図。
図4】単一動作用の再構成可能な衝突検出アーキテクチャの例を示す図。
図5】ボクセルの代わりにボックスを使用した戦略用の衝突検出アーキテクチャの例を示す図。
図6A】PRM変化における単一動作に対する掃引量の表現が、表現戦略によってどのように変化するかを示す図であり。実際の掃引量を示す図。
図6B】その動作のすべての個々のボクセルを含む図。
図6C】個々のボクセルの代わりに87ボックスを使用して記述した同じ掃引ボリュームを示す図。
図6D】10%の容積増加が許容される場合、わずか38ボックスでカバーされる容積を示す図。
図7】一実施例の実装に関するルマンフォード計算ユニットの基本的マイクロアーキテクチャのレイアウトを示す図。
図8】一実装例に関するオンチップネットワーク用のルータマイクロアーキテクチャの例を示す図。
図9】一実施例の実装に関する相互接続ネットワークの平面図。
図10】5,000を超えるサンプリングされた環境でシミュレートされた、2つのサイズのロードマップについて様々な時点で完了する確率を示す図。
図11A】ロードマップ内のエッジの数に対する数衝突チェックレイテンシ(number collision checking latency)のプロットを示す図。
図11B】ロードマップ内のエッジの数に対する最短経路探索レイテンシのプロットを示す図。
図12】ハードウェア予算と表現量の増加との間のトレードオフを視覚化した図。
【発明を実施するための形態】
【0012】
自律型車両専用のロボット動作計画ハードウェアを提供する。この自律型車両用のロボ
ット動作計画ハードウェアは、リスクを認識するロボット動作計画を含む。自律型車両や
他のロボット用の動作計画用のシステムと装置に加えて、自律型車両や他のロボット用の
様々な専用のロボット動作計画ハードウェアを実装することができる再構成可能なプロセ
ッサを記載する。この再構成可能なプロセッサは、特定のロボット及び/又はシナリオ用
の動作計画を実行し、次いで、別のロボット及び/又はシナリオ用の動作計画を解決する
ように再構成可能である。
【0013】
本明細書で使用される「シナリオ」は、「オブジェクトを有する机」又は「オブジェク
トを有する本棚」などの環境の種類をいう。シナリオには、障害物の数とその位置、サイ
ズ、形状の分布が含まれる。シナリオには、様々なロボット部品の位置を伴う、ロボット
の開始ポーズと目標姿勢の分布も含む。ある時点で、あるシナリオから描かれた1つのタ
スクに対して、ロボットは動作計画を実行する必要がある。たとえば、シナリオが「オブ
ジェクトを有する3フィートの背の高い机」であり、障害物の数、障害物の位置、障害物
のサイズ/形状、及びロボットの開始及び目標のポーズの所与の分布が与えられている場
合、ロボットはテーブルの下で腕を動かす必要がないと予想される。別の例として、多く
のシナリオでは、ロボットが自体の背後で腕を動かす必要があるとは考えにくい。このシ
ナリオの先験的知識は、予想される動作計画の問題を解決するためにリソースを保存する
(そして、より多くのハードウェアを用いる)。特定の環境で複数のシナリオが可能であ
る場合、事実上シナリオの結合体である複合シナリオが利用される、又はシナリオが変更
されたときにロボット動作計画ハードウェアが再構成される。
【0014】
本明細書で使用する「車両」とは、地上、水上又は水中、空気中、又はそれらの任意の
組み合わせの中を移動することができる任意の移動機械をいう。陸上車両の例には、列車
、バス、自動車、トラック、オートバイ、モペットが挙げられる。水用車両の例には、潜
水艦、ボート、レクリエーション用の船舶が含まれる。空用車両の例としては、無人機、
飛行機、ヘリコプター、四輪車などが挙げられる。地上車両、水用車両、及び空用車両は
すべて、その車両に動力を与えられ、かつ自律的に制御できる限り、「車両」の範囲内に
あるとみなす。自律型車両は、「ロボット」の特殊ケースであり得るため、「ロボット」
に関して本明細書に記載の態様は、アプリケーションに応じて自律型車両用に実装するこ
とができる。「自律型」への言及は完全な自律性を必要とせず、半自律型の車両を含み得
ることを理解されたい。
【0015】
本明細書で使用する「リスクを意識した」とは、その車両又は他のロボットの動作環境
において不確実性を伴って現れ得る動的障害物の将来軌道の確率的推定値を含んでいるこ
とをいう。
【0016】
ボクセルは、障害物(ボクセルの集合であってもよい)の一表現である。いくつかの実
装では、ボクセルは、空間(x、y、z)内の点として定義され、x、y、zを空間上の
点を画定する座標として、任意に、tは、その空間に障害物がある時間を暗黙的又は明示
的に表す値である。暗黙の時間とは、時間を反映するパラメータを指すが、時間を直接示
す必要はない。暗黙の時間の一例が、開始点からのホップ数である。明示的な時間とは、
時間を直接的に示す値(実際の時間に拘束されるか、又は開始時間から例えば秒単位で増
分されるかを示す)を指す。したがって、静的障害物は、[0、H]内のすべてのtにつ
いて(x、y、z)点が同じである障害物である。場合によっては、(x、y、z、及び
tの値と一緒に、又はいずれか又はすべてを置き換えて)1つ又は複数の追加変数をボク
セルに含めることができる。これらの変数には、ロボット/車両の状態及び/又はその環
境に関するあらゆる適切な情報が含まれる。例には、湿度、雨、傾斜、速度、加速度、方
位角、及び角度が含まれるが、これらに限定されるものではない。
【0017】
いくつかの実装では、ボクセルの代わりに、任意のタイプのポリゴン、例えば、各頂点
がその3D座標で記述される三角形から作られるメッシュモデルによって障害物を表すこ
とができる。
【0018】
ここに記載の特殊ロボット動作計画ハードウェアは、衝突検出を解決する動作計画操作
及び/又は最短経路を見つける動作計画操作を完全に、ハードウェア回路内で、又は記憶
装置に記憶され、ハードウェアプロセッサによって実行されるソフトウェアとして、又は
ハードウェア回路と、記憶装置に保存され、ハードウェアプロセッサによって実行される
ソフトウェアとの組み合わせとして実行することができる。このハードウェア及び/又は
ソフトウェア機能が、「動作計画モジュール」を具現化すると考えることができる。
【0019】
背景技術で述べたように、動作計画とは、ロボットが所望の位置に到達するまで、ロボ
ットがある位置から別の位置に移動するために受ける動作を識別するために使用されるプ
ロセスを指す。ジョイントによって連結された一組の剛体で形成された多関節ロボットの
場合、動作計画は、目標姿勢が達成されるまで、ある姿勢から別の姿勢への動きを決定す
る。複数の寸法及び操作の自由を有する又は有することのできない車両の場合、動作計画
は、ロボットの構成スペースの一部として、位置が増減しながらも多関節ロボットの一部
として割り当てられる多関節ロボットと同様に、1つの位置又は姿勢から別の位置又は姿
勢への移動を決定する。
【0020】
例えば、多関節ロボットの姿勢は、その関節のすべてに位置を割り当てることによって
記述することができる。このようなジョイント位置のすべての空間は、ロボットの構成空
間、つまり「C空間」と呼ばれてQと表示される。Qのうち、(ジョイント位置の)いく
つかの構成は、ロボットの環境内の障害物やロボット自体の身体と衝突することになるが
、Qの残りは「空きスペース」と呼ばれる。したがって、ロボットの動作計画上の問題は
、ある開始構成q0から目標構成のセットG内の任意の構成gまで、自由空間を通る衝突
のない経路を見つけることを必要となると考えられる。
【0021】
図1は、一般的に静的な環境における動作計画の問題例を示している。図1を参照する
と、C空間(ロボットの構成空間)100は、障害物衝突領域102、104及び自由空
間110を含むことができる。経路120を、開始構成122(q0)から目標構成12
4(g∈G)の組内の一構成まで、自由空間110を介して見出すことができる。
【0022】
この車両の実施形態では、障害物衝突領域102、104を形成し得る静的障害物に加
えて、他の障害物、特に動的障害物が関連している。その例として、既知の/特定の軌道
内で動くオブジェクトに代表される物(例えば、落下する煉瓦、転がる缶)、及び意識者
(例えば、自転車ドライバー、歩行者、鳥)によって制御されるオブジェクトを表す物を
挙げられる。自律型車両の場合、これらの動的障害物により難しくなっている動作計画に
は、非常に高速な動作計画を実行する能力と、動的オブジェクトの動きの不確実性を分析
する能力とが必要となる。自律型車両を取り巻く環境は急速に変化する可能性があり、車
両の動作計画を実行する能力はこれらの変化に対応しなければなりない。
【0023】
典型的には、知覚、計画グラフ構築、衝突検出、及び経路探索の4つの主要な構成要素
が、動作計画の作成に関与する。
【0024】
知覚構成要素は、センサと処理の組み合わせを使用して環境のモデルを生成することを
含む。知覚は、任意の適切なコンピュータビジョン及びセンシングアーキテクチャによっ
て実行することができる。一般に、この環境モデルは、環境の離散化図(discretized vie
w)内でスペースのどの領域が障害物を含むかを表すデータ構造である占有グリッドの形態
であると考えることができる。
【0025】
計画グラフ作成コンポーネントには、ロボットの構成空間内での姿勢と動作のグラフの
作成が含まれる。場合によっては、このグラフ内の各ノードは、特定の姿勢でのロボット
の状態を完全に画定し、各エッジは、その姿勢間の動作を画定する。自律型車両の実施形
態に有用であるなど、いくつかの場合では、計画グラフ構成要素は、暗黙的又は明示的に
時間と組み合わされた車両挙動に関連する一組の変数を含む。すなわち、1つの実装では
、暗黙的又は明示的な時間とともに、多関節ロボットの実施形態と同様のパラメータ(例
えば、空間座標x、y、及び任意にz)がノードを画定することができる。他の実装では
、空間パラメータの1つ以上の代わりに、又はそれに加えて、角度(シータ)、速度、加
速度、又は他の対象パラメータを含めることができる。
計画グラフ構築は、オフラインで(即ち、リアルタイムの作動計画の前に)実行される
【0026】
衝突検出コンポーネントは、ロボットの動作がそれ自体又はその環境と衝突しているか
どうかを判定することを含む。衝突検出の一部はオフラインで実行される。この部分は、
事前計算済み衝突データを含むことができる。計画グラフ構成の一部として生成されたグ
ラフは、衝突検出のオフライン部分で修正され、結果として計画グラフが出力される。計
画グラフは、確率的ロードマップ(PRM)、PRM*、迅速に探索するランダムツリー
グラフ(RRT)、RRT*、又は格子であり得るが、これらに限定されない。
【0027】
経路探索コンポーネントは、開始位置から目標までの経路が存在するかどうかをチェッ
クし、1つ以上の最適経路又は他の望ましい経路を識別するために計画グラフを走査する
ことを含むことができる。
【0028】
計画グラフ構成、衝突検出、及び経路探索は、本明細書に記載の技術によって加速され
、いくつかの実施形態では、再構成可能な方法で実装される。
【0029】
図2は、自律型車両の運行計画用のリアルタイムシステムの一例を示す。図2を参照す
ると、システム200は、センサ201、オブジェクト検出器202、オブジェクト追跡
器203、コストグリッド204、及び動作計画モジュール205を含む。
【0030】
センサ201は、ロボット用の任意の適切なセンサとすることができる。センサの例に
は、光/写真(IRを含む)、音声(例えば反射ベース)、化学的、指向性、及び位置(
例えば、全地球測位システム)が含まれる。ロボットによって捕捉され分析される環境は
、必ずしもロボットの現在位置と目標位置との間の直接経路内の環境である必要はないこ
とを理解されたい。ロボットは、迂回経路でのみ有効な経路を持つ場合がある(その経路
は、目標の姿勢又は状態の全視線内にない場合さえある)。このロボットは、その環境を
検出して分析することができる様々なセンサシステムのいずれかを含む、又はそれと通信
することができる。例えば、ロボットは、赤、緑、青、及び奥行き情報を(例えば、赤外
線を介して)受信することができる1つ以上のカメラセンサを有することができる。別の
例として、カメラ(又は他のセンサ)は、環境内の壁、天井、床及び/又はオブジェクト
(例えば、テーブル、ボックスなど)上などの環境及び/又は空間(例えば、衛星、無人
機など)内の1つ又は複数の位置に配置可能である。環境内のセンサ(単数又は複数)か
ら捕捉された環境情報は、有線又は無線手段を介してロボット(及び/又はオブジェクト
検出器202及び/又はオブジェクト追跡器203)に送信することができる。
【0031】
オブジェクト検出器202は、1つ以上のセンサ201からの入力を使用してオブジェ
クト情報を決定する。オブジェクト検出器202を使用して、センサデータから障害物が
あるかどうかを判定することができる。オブジェクト検出器202を、静的オブジェクト
の識別に使用可能であり、オブジェクト検出器202は、特定の/計算可能な経路(例え
ば、落下するレンガ)を有する移動オブジェクトを検出する機能(ハードウェア又はソフ
トウェアを介する)を含むこともできる。道路を使用する車両の場合、オブジェクト検出
器202は、道路上の既知の静的障害物(これはロードマップに関して車両の位置から識
別されるオブジェクトを含み得る)の位置を識別する道路検出器とすることができる。
【0032】
オブジェクト追跡器203は、1つ又は複数のセンサ201からの入力を使用して、動
的オブジェクトを識別し、識別した各オブジェクトについての将来軌道の確率分布を経時
的に出力する。オブジェクト追跡器203は、不確実な動きの障害物を検出して追跡する
ために使用される。例えば、オブジェクト追跡器203は、センサ201の1つ以上から
のデータから、道路上に別のかごがあること(識別された動的オブジェクト)を識別する
ことができる。自動車に対するオブジェクト追跡器203の出力は、1つ又は複数の関連
軌道上にて所与の時間に、自律型車両の前でその動的オブジェクトが外れる可能性が10
%であり、その動的オブジェクトが(例えば、次の停止標識のために)減速する可能性は
90%であることを示すことができる。
【0033】
センサ201、オブジェクト検出器202、場合によってはオブジェクト追跡器203
の態様を、動作計画のための知覚要素の一部と見なすことができる。
【0034】
コストグリッド204(又は「コストマップ」)は、障害物を表すために使用可能なデ
ータ構造を含む。コストグリッド204は、特定の活動及び/又は場所の嗜好に関する情
報を含み、環境内の特定のオブジェクトを識別するために使用することができる。コスト
グリッド204によるオブジェクト表現の形式の例として、ボクセルの値、三角形から作
られたメッシュモデルを挙げることができ、この三角形の各頂点は、3D座標、確率的占
有グリッド、又はオクタマップで記述される。
【0035】
自律型車両の実装例では、コストグリッド204は、車両周囲の特徴(「道路特有のコ
ストマップ」)からコストマップを生成することができる。例えば、車の場合、車線の中
央に留まること、反対方向への通行車線に移動しないこと、車線変更を増やすのではなく
減らすことなどが好まれる可能性ある。さらに、カーブや窪みなどの道路の特徴を考慮に
入れることができる。したがって、コストグリッド204は、車の周りの道路特徴からコ
ストマップを生成する。これは占有グリッドに類似しているが、各ボクセルがコスト修正
子(cost modifier)を伴っている。例として、道路が直接前方にある場合、右側には緊急
レーンがあり、左側には別方向のレーンがある場合、グリッドには低コスト(又は負のコ
スト)のストライプが含まれ、高いコストボクセルのストライプが右側に、非常に高いコ
ストボクセルのストライプがその左側にくる。同様に、道路にカーブが存在する場合、道
路外の領域のコスト修正子は、車が道路を外れるのを最小限に抑えるために、より高いコ
ストとして示される。レーン変更を最小限に抑えるためにコスト修正子を割り当てること
もできる。道路のコストグリッド204の各ボクセルは、x座標及びy座標を含むことが
できるが、値として時間を必要としない。ボクセルには、速度制限に関する嗜好表現をサ
ポートするため、速度などの情報を含めることができる。もちろん、他のパラメータを所
望に応じて使用してもよい。
【0036】
動作計画モジュール205は、識別された動的オブジェクトのオブジェクト追跡器20
3から出力された推定値から検出されるオブジェクト及びサンプル軌道に対応するコスト
グリッド204からボクセル及び割り当てられたコストを受け取り、この車両用又は他の
ロボット用動作計画を生成する(自律型車両の適切なハードウェアによって実行可能)。
使用されるメモリのタイプは、ダイナミックランダムアクセスメモリ、フラッシュメモリ
、光磁気メモリ、磁気抵抗メモリ、光ベースメモリなどの任意の適切な記憶媒体とするこ
とができる。
【0037】
計画グラフがこの記憶装置に記憶される。上述したように、計画グラフは、格子、PR
M、PRM*、又は他の適切なグラフでよい。動作計画モジュール205のハードウェア
プロセッサは、オブジェクト追跡器203で出力された軌道をサンプリングして、コスト
/リスクを調整する。言い換えれば、動作計画モジュール205は、サンプル軌道を考慮
して、グラフの各エッジに沿って、コスト値及び/又はリスク値を含む可能性のある衝突
確率を調整する。このサンプル軌道は、ボクセル(又は障害物の他の表現)にマッピング
され、衝突検出の実行に使用可能である。したがって、この動作計画ハードウェアは、リ
スクを認識した動作計画ハードウェアである。
【0038】
一例では、動作計画モジュール205は、各動的障害物の将来軌道の確率的推定からそ
の軌道をサンプリングし、各サンプルに対する衝突検出を実行する。衝突におけるエッジ
は、衝突する可能性のある推定確率を増加させる可能性がある。200個のサンプルがあ
る場合、各軌道上の衝突は、1エッジの確率衝突に1/200を加える。この値は、計画
グラフのエッジの一部として保存され、最短経路アルゴリズムの実装中に使用される(例
えば、再構成可能かつハードウェアで実装された最短経路モジュールのアルゴリズムにつ
いては、ベルマンフォード法使用に関する記載を参照)。この値は、計画グラフのエッジ
に関連付けられて動作計画モジュール205に保存することができる。
【0039】
衝突検出は、場合によっては、これに限定されるものではないが2016年1月5日に
出願されたPCT/US2016/012204号「特定のロボット動作計画ハードウェ
ア及びその製造方法及び使用方法」に記載されている方法を使用することを含む。その全
体を参照により本明細書に組み込む。
【0040】
動作計画モジュールが実行する処理の一例を以下に示す。
【0041】
動作計画モジュール205は、計画グラフ内のすべてのエッジについてのリスクを計算
し、次に割り当てることによって、目標位置に到達する効率と他の障害物への衝突のリス
クとをバランスさせる動作計画を生成する。動作計画モジュール205に保存されている
確実性と衝突する計画グラフのエッジ(例えば、これらの静的障害物)は、除去されるか
、又はリスクに割り当てられる。自律型車両の多くの実際的なアプリケーションでは、エ
ッジは残るが、リスクが割り当てられる(非常に小さい/無視できる割り当て値、又は非
常に大きい/最大の割り当て値)。エッジに割り当てられたリスクは、静的オブジェクト
(例えば、100%)に対する所定のリスク値に基づくことができる。不確実な障害物と
の衝突がないという高い確率を確実にするため、動作計画モジュール205は、確率的推
定から軌道分布全体をサンプリングし、計画グラフの各エッジとの衝突確率を計算するこ
とができる。
【0042】
動作計画モジュール205が軌道をサンプリングし、(エッジに割り当てられたリスク
に基づいて)エッジに対する衝突確率を決定した後、動作計画モジュールは、コストと衝
突の可能性とを考慮して目標位置への「最短」経路を決定する。例えば、ゴール位置に到
達する最速の方法は、自転車運転手を直進させることであるが、そのような経路では自転
車運転手が引き倒される可能性(衝突の推定値など)が2%あり、これは高コスト(やや
悪い/悪い決定)である。他の経路オプションには、自転車の運転手の周囲を回ることも
含まれる。別の例として、ゴミ箱に当たる確率が大きい場合であっても、ゴミ箱にぶつか
ることは、犬にぶつかるよりもコストは小さい。したがって、ゴミ箱にぶつかる有効コス
トは、犬にぶつかるよりもはるかに小さい。衝突の確率が100%である場合、その有効
コストは最大である。別例では、リスク限定を用いるケースでは、衝突の確率が軌道当た
り5%未満である必要がある場合、衝突の可能性が5%未満という限定で最小経路コスト
を求める探索を行うことができる。リスクと効率を交換するコスト関数が望ましい場合、
動作計画モジュールは、2つの用語を使用して修正コストを計算し、最短経路アルゴリズ
ムを実装することができる。この経路は、動作計画モジュール205から出力され、それ
に応じて移動するためにロボットに送られる。
【0043】
一般に、移動するロボットでは、すべての経路がある程度衝突する確率を有する可能性
があり、そうでなければ車両は静止したままであるべきである。しかし、静止しているこ
とは、一般的には車両にとって妥当な選択肢ではない。ほとんどの運転者は、効率とのバ
ランスがとれている場合、例えば衝突のリスクとして0.1%の閾値を適切に十分な値と
して採用することができる。ロボットは、又はこの場合は自律型車両、設計者は特定のト
レードオフを選択できる。動作計画モジュール205は、そのトレードオフを知りつつ、
最短経路を計算することができる。
【0044】
リスク対効率のバランスをとる、又は少なくとも考慮することによって、動作計画モジ
ュール205はリスク認識動作計画を提供する。一実施形態では、時間Hにおける所望の
目標位置の一組(又は、時間Hにおける位置に対する嗜好)が与えられると、動作計画モ
ジュール205は、(a)可能性のある衝突に基づくエッジの除去、又は各エッジにコス
ト又はリスクの追加、(b)道路のレイアウトに基く各エッジの削除又は追加、及び/又
は(c)最小コストと場合によってはリスク限定とを用いた計画の計算を含むことができ
る。
【0045】
実行時には、コストとコストの発生確率が変化する。したがって、動作計画モジュール
205によって実行される動作計画は、本質的に反復的であり得る。すなわち、再計画は
、計画を作成し、単一の動作を行い、その後、動作計画プロセスを再び繰り返すステップ
を含むことができる。この場合、車両の原点にある格子(又は他の計画グラフ)を一貫性
維持のために定着させることが非常に有用である(また、車両が障害物に近づいているた
めに計画の解決策を減らすことができる)。
【0046】
ここに記載のシステム200は、車両システム(例えば、ブレーキ、エンジン、ステア
リング等)に対する調整を実装することができる、オンボードコンピュータプロセッサ及
び電気的及び/又は機械的に接続された作動システムを含む車両の一部として実装するこ
とができる。様々な構成要素に電力を供給するために、ストレージシステム、ならびに電
源及び/又は接続を含めることができる。センサ201は、環境を検出し分析することが
できるセンサシステムの一部であってもよい。センサシステムの例として、ビデオカメラ
、イメージセンサ、赤外線センサ、超音波トランシーバ、マイクロホン、力センサ、容量
センサ、加速度計、ジャイロスコープ、及び温度センサの形態の光学センサ、マイクロ波
センサ、音響センサ及び他のセンサが含まれるが、これに限定するものではない。センサ
システムは、車両に局所的であり得る構成要素及び車両から離れ得る構成要素を含むこと
ができる。例えば、場合によっては、センサシステムは、環境内に配置可能なセンサを含
むことができ、その出力は、車両でローカルに分析される、又はロボットから遠隔にて分
析され、(利用可能な他のアプリケーションの中で)動作計画において使用するようにロ
ボットに伝達される。
【0047】
オンボードコンピュータプロセッサは、動作計画モジュール205に使用されるプロセ
ッサのいずれかとは別又は同じプロセッサすなわち処理システム、及び/又はオブジェク
ト検出器202及びオブジェクト追跡器203によって使用されるプロセッサのいずれか
であってもよい。処理システムは、車両の記憶システム及び/又は動作計画モジュール2
05(及び/又はシステム200の他のコンポーネント)に保存されたソフトウェアの命
令に従ってデータを変換又は操作する1つ又は複数のプロセッサを含むことができる。処
理システムのプロセッサの例には、汎用中央処理装置、特定アプリケーション向けプロセ
ッサ、論理装置、及びグラフィック処理装置(GPU)、ならびに任意の他のタイプの処
理装置、組合せ、又はそれらの変形が含まれる。処理システムは、ネットワーク接続構成
要素、ビデオ表示構成要素などの1つ以上の他の構成要素を伴うシステムオンチップ(S
oC)であっても、これに含まれていてもよい。さらに、衝突検出及び/又は最短経路決
定を含む動作計画モジュール205の態様は、(再構成可能性をサポートすることができ
る)ハードウェアで実装することができる。
【0048】
ストレージシステムは、物理的記憶装置の形態の記憶媒体を含む。「記憶媒体」という
用語は、一時的信号又は伝搬信号として定義されるべきではない。この車両の記憶システ
ムは、処理システムと通信することができるコントローラなどの追加要素を含むことがで
きる。
【0049】
単純(すなわち、リスク認識を含まない)又はリスクを認識することのできる動作計画
モジュールは、広範囲のロボット及び動作計画アプリケーションに対して再構成可能であ
り、又はロボット及びシナリオ固有であり得る。
【0050】
ロボット記述(例えば、ロボットの衝突形状、ロボットの各関節の自由度、ロボットの
関節限界)及びシナリオ記述を使用してPRM(又は他の計画グラフ)を生成し、次いで
、障害物(既知の障害物及びロボット自体の部品)の各部分と衝突する可能性のあるPR
M内のエッジをすべて識別することによって、動作計画モジュールの衝突検出部を生成で
きることが分かる。ハードウェアにより実現されるソリューションには、論理回路を生成
することができる。たとえば、エッジが衝突する可能性のある障害の部分をORで表現す
る各エッジのOR回路が生成される。再構成可能な解決策では、論理回路は、再構成可能
なアーキテクチャ(例えば、FPGA)に実装される、又は動作計画モジュールのハード
ウェアプロセッサによって適用されるソフトウェア表現として保存され得る。あるいは、
エッジのリストを保存し、動作計画モジュールのハードウェアプロセッサによって探索す
ることができる。
【0051】
動作計画モジュールは、いったんハードウェアにより実現又は動作計画モジュールに保
存されると、リアルタイムの動作計画を実行するためにロボットにより使用となる。
【0052】
図3は、本発明の特定の実施形態による動作計画モジュールの例示的なアーキテクチャ
を示す。図3を参照すると、動作計画モジュール300は、衝突検出モジュール310と
最短経路モジュール320とを含むことができる。衝突検出モジュール310又は最短経
路モジュール320の一方又は両方は、再構成可能であり得る。
【0053】
動作計画モジュール300のいくつかの実装は、最短経路加速のためのハードウェアア
ーキテクチャなしでソフトウェアベースの最短経路アルゴリズムを使用することができる
。プログラミングフェーズでは、ユーザが関心のある問題の装置を構成及び再構成するこ
とができる。関与する特定のロボット及び計画グラフの事前計算済み衝突データは、チッ
プの動作計画モジュール300に送られる(点線の矢印はプログラミングフェーズで発生
する通信を示し、実線はその実行フェーズで発生する通信を示している)。
【0054】
最短経路モジュール320がハードウェアで実装されると、計画グラフのトポロジも、
ハードウェアユニットの再構成可能なファブリックにマップされ、最短経路の迅速な決定
が可能となる。このマッピングステップは、各物理ノードを、その論理的な隣接物のアド
レス及びエッジ重みでプログラミングすることを含む。これにより、アーキテクチャをさ
まざまな計画グラフのトポロジに再構成することができる。
【0055】
有利にも、本明細書で説明する最短経路ハードウェアは、動作計画以外の用途で利用す
ることができる。したがって、最短経路モジュールは他の用途にも適用可能であると考え
られる。
【0056】
図3に戻ると、実行フェーズ中に、ホスト(例えば、ロボットシステム)は、知覚デー
タを動作計画モジュール300に送信する。知覚データは、現在の環境においてボクセル
が存在するストリームである。衝突検出モジュール310は、どの動作が安全であるかを
計算し、それが完了したら、結果を最短経路モジュール320に送る(それ以上のホスト
装置通信なしで)。衝突検出モジュール310は、衝突のエッジを除去することによって
、それに応じて計画グラフを修正する。次に、最短経路モジュール320は経路Pを実行
してホストに返す。
【0057】
ユーザは、異なるロボット/計画グラフの組み合わせに関連する様々な構成ファイルを
保存することができる。新しい組み合わせに切り替えると、装置は、例えば、事前計算済
み衝突データと、及び任意に計画グラフデータと、最短経路モジュール320の再構成可
能な実装への論理/物理ノードマッピングとを衝突検出モジュール310の再構成可能な
実装に提供することによって再プログラムされる。
【0058】
衝突検出モジュール310は、ハードウェアプロセッサ、記憶装置、及び事前計算済み
衝突データを含むことができる。動作計画中、知覚データが受信されると、その知覚デー
タは、ハードウェアプロセッサによって、記憶装置に保存された事前計算済み衝突データ
と比較されて、衝突が判定されるように、事前計算済み衝突データが記憶装置に保存され
る。
【0059】
最短経路モジュール320は、最短経路アルゴリズムを実装する並列ハードウェアユニ
ット(例えば、図7に示す例を参照)と、論理的ネイバーを識別するために、論理的トポ
ロジを並列ハードウェアユニットの物理的トポロジにマッピングする回路(例えば、図8
及び図9を参照)とを含むことができる。動作計画に対して、最短経路モジュール320
は決定された衝突を受信して計画を出力する。
【0060】
再構成可能な動作計画モジュールを動作させる例示的な方法は、第1のプログラミング
フェーズを実行して、特定のロボット及び特定のシナリオのためにモジュールをプログラ
ムすることと、プログラムされた動作計画モジュールを使用して動作計画を実行すること
と、第2のプログラミングフェーズを実行することによって動作計画モジュールを再構成
して新たな特定のロボット及び/又は新たな特定のシナリオのためにモジュールをプログ
ラムすることとを含むことができる。次いで、その再構成されたモジュールを動作計画に
使用することができる。
【0061】
ロボット動作計画加速のための再構成可能なアーキテクチャの例
【0062】
このアーキテクチャは、自律型車両又は任意の一般的なロボットの実施形態に適用する
ことができる。尚、PRMすなわちロードマップを具体的に説明するが、他の計画グラフ
を使用してもよい。衝突検出のワークフローには4つの段階がある。第1に、十分な堅牢
性を有するPRMがプログラミングフェーズで構築される。次に、このPRMを、環境の
離散化図で徹底的に衝突チェックする。動作計画モジュールのプログラミングフェーズ中
、事前計算データは衝突検出モジュール(例えば、衝突検出モジュール310)に送られ
、容易にアクセス可能な方法で保存される。リアルタイム(すなわち、ライブ)中に、衝
突検出モジュールは障害物情報を流し、衝突しているエッジにフラグを立てる。上記は一
般的なアーキテクチャの記載であり、図3に例示している。
【0063】
PRMは、可変的な障害物を含まない空間内に構築される。シナリオに関する先験的知
識はいずれも、壁やテーブルなどの固定されたオブジェクトを含めることで活用できるが
、障害のない環境でPRMの構築が行われる。PRMは、予想される障害に対して堅牢に
なるように十分に大きくされている。このアーキテクチャについて、PRMが構築される
方法はいずれでもよい。この実施形態では、対象シナリオのパラメータ化された表現から
無作為に生成された数千のサンプル環境に対して、(エッジが数十万のオーダーの)大き
なグラフをテストする。有用かつ重要なエッジが保持され、解であまり使用されないエッ
ジは除かれる。このヒューリスティックプロセスは、各ステップでPRMが高い成功率を
保持し、経路品質劣化を起こさないことを保証するように数回繰り返される。これは、1
つの環境用にPRMを構築するよりはるかに時間がかかる作業であるが、この工程は一度
だけの実行でよい。
【0064】
いくつかの量の衝突検出は、事前プログラミングフェーズの間に実行することができる
。この段階で実行時に時間を節約するために、ジオメトリテストを実行することができる
。下の例は、障害物を表すためにボクセルを使用した衝突検出を示す。他の障害表現が使
用されてもよいことを理解されたい。この環境はボクセルの3D領域に離散化することが
できる。次に、PRMの各動作の掃引容積と離散化された空間内のボクセルとの間で可能
性のあるすべての衝突が事前に計算される。
【0065】
このステップの後、各動作には衝突するボクセルの対応組ができる。こうなると知覚シ
ステムは、離散環境における空間のどの領域が障害物によって占有されているかを表す占
有グリッド(例えば、自律型車両の実施形態ではコストグリッド)を生成し、次いで各動
作について、障害物ボクセルのどれが衝突ボクセルの組に入っているのかをチェックする
だけでよい。これが起こる全ての動作について、対応エッジを、環境が変化するまでPR
Mから一時的に除去しなければならない。事前計算した衝突データ及びPRMは、所与の
ロボット及びユースケースに固有であることに留意されたい。ロボットが変化したりシナ
リオが大幅に変化したりした場合は、PRM、したがって衝突データを再計算する必要が
ある。これらの構造は設定ファイルに保存される。さまざまなロボット/計画グラフの組
み合わせに関連するさまざまな構成ファイルが保存可能である。新しい組み合わせに切り
替えると、デバイスを再プログラムすることができる。同じユースケースに対するクエリ
の間(例えば、障害物やゴールポジションだけがある場合など)、再プログラミングの必
要はない。ソフトリセットにより、インコリジョン(in-collision)としてフラグが立てら
れたエッジが復元され、次のクエリがすぐに開始される。同じシナリオでは、環境に若干
の変更があっても再プログラミングの必要はない。
【0066】
上記のボークセットセットが論理的に作成されると、実行時にセットを迅速に照会でき
るアーキテクチャが作成される。再構成可能性機能の一部として、プログラミングフェー
ズの間に、ユーザは計画グラフ(例えば、PRM)及び事前計算済み衝突データを衝突検
出モジュール310に送る。PRM内の各動作は、基本的に「テンプレート化」された積
和であるエッジモジュールに割り当てられる。個々のエッジモジュールは、ハードコード
された論理機能ではなく、あらゆるセットのチェックを可能にする記憶機構(例えば、ラ
ッチ、コンデンサ、磁気トンネル接合装置など)を含む。並列性を達成し、エッジの数に
依存しない衝突チェックレイテンシを実現するために、これらのプログラム化可能なエッ
ジモジュールが大量に存在し、PRMの各動作に対して1つずつある。
【0067】
このプログラミングフェーズの間、各動作が衝突する各ボクセルは、動作計画モジュー
ルハードウェアに送られ、そのボクセルは適切なエッジモジュールに保存される。
【0068】
図4は、単一動作に対する再構成可能な衝突検出アーキテクチャの例を示している。こ
のアーキテクチャは単一のエッジを実装する。図4を参照すると、単一動作用の再構成可
能検出アーキテクチャ400は、制御ロジック410、記憶メカニズム(421-1、.
..、421-n)及び比較器(422-1、...、422-n)の平行な「エッジモ
ジュール」、平行ラインの出力をORして衝突結果を出力するNOR論理ゲート430と
を備えている。
【0069】
上述したように、個々のエッジモジュールの格納機構としてラッチを示しているが、任
意の適切な格納機構を使用することができる。
【0070】
実行段階の間に、衝突検出モジュール(例えば、図4のエッジモジュールを使用して実
装された衝突検出モジュール310)がボクセルIDで流れ、それらをすべての個々のエ
ッジモジュールに分配する。各エッジモジュールはそのボクセルIDとその保存されてい
るすべてのデータとを比較し、一致するものがあれば真を出力する。つまり、特定のエッ
ジが衝突していることを示す。衝突検出器モジュールは、エッジモジュールからの結果を
集約し、衝突中の現在プログラムされているPRM内の動作を表すビットベクトルを出力
する。
【0071】
再構成可能性の結果、いくつかの課題が生じる可能性がある。それぞれの動作は、異な
る容量の空間で、したがって異なる数のボクセルに衝突する。これは、モジュールをさま
ざまなサイズのエッジに対応できる大きさにする必要があるため、プログラマブル回路を
実装する際に問題になりかねない。ハードウェアの効率は、それらが衝突するボクセルの
数に基づいて可変サイズのプログラマブル衝突検出回路を作成することによって達成する
ことができる。これに続くプログラミングフェーズで、衝突するボクセルの数に基づいて
適切な衝突検出回路にPRM内のエッジを戦略的にマッピングする。
【0072】
発生し得るもう1つの課題は、大量のハードウェアが必要となることである。主に2つ
の要因によって、この再構成の戦略には、ハードコードされた設計よりも多くのハードウ
ェアリソースが必要となる。衝突データを保存する(そして再構成を実現する)ために必
要な状態が重要である。ある動作が1,000ボクセルに衝突し、各ボクセルが15ビッ
トで表される場合、その単一エッジは15,000ビットの状態を消費する。これは、単
純なラッチを記憶メカニズムとして使用する場合でも非常に大きなコストとなりかねない
。第2の要因は、ハードコードした論理式で作業するときに実行できるように、回路のサ
イズを減らすためにロジックミニマイザを使用できないことである。個々のエッジ内と重
なる掃引容積を持つエッジ間との両方で、その式にかなりの冗長性がある。特殊な回路を
構築する場合、この冗長性を活用して、論理式の複雑さを大幅に軽減し、実装に必要なハ
ードウェアリソースを削減することができる。この節約分は、再構成可能なケースでは冗
長性がまだ存在していても失われる。
【0073】
このボクセルラッチ戦略により、ボクセルの任意の組み合わせからエッジの掃引容積を
形成することができる。実際には、掃引容積のボクセルは接続され、連続状の容積を形成
する。掃引容積の記述には順序があるという事実は、つまりデータを圧縮する方法が必要
であることである。 掃引容積に含まれる個々のボクセルの表現を明示的に保存する代わ
りに、連続したボクセルの表現を格納することもできる。矩形のプリズム(便宜上「ボッ
クス」と称する)は、ボックスの一対の対向角部の座標のみで表すことができる。これは
、ボックスを保存するために必要な状態が、2つのボールを格納するのに必要な状態と同
等であるため、大きな節約となる。各ボックスは、状態を減らすために元のボクセルの3
つ以上をカバーしなくてはならない。
【0074】
個々のボクセルの代わりにボックスベースの表現を使用するには、元のボクセルのすべ
てを含むボックスの集合を見つける必要がある。これは、集合被覆の最適化問題と同様に
考えることができる。集合被覆の問題では、「ユニバース」と呼ばれる要素のセットと、
ユニバースのサブセットの集合が存在する。この問題の最適化バージョンには、そのユニ
オンがユニバースと等しいサブセットの最小数を見つけることが含まれる。この適用例で
は、掃引容積がユニバースであり、サブセットの集合は、この掃引容積と重なるすべての
可能な直角プリズムを含む。設計に必要な状態を減らすために掃引ボリュームを被覆する
ために必要なボックスの最小数を見つける必要があった。集合被覆の最適化問題はNP困
難であるため、近似解を計算しなくてはならない。まず、無関係な(extraneous)ボクセル
を含まずに、掃引容積の離散化されたバージョン内のボクセルの最大数を被覆するボック
スを選択する。セルはユニバースから取り除き(ボックスは重なり合うので、被覆された
ボクセルはその後の反復で「気にならない」状態となる)。元のセットからのボクセルが
すべて被覆されるまで再帰する。実験的な例として、この戦略を50,000のエッジを
有するPRM上に実装した。15ビット分解能の場合、各掃引容積は平均2,000ボク
セルと衝突することが分かった。このバージョンの集合被覆問題のおおよその解は、掃引
容積を完全にカバーするために平均127個のボックス(余分なボリュームは含まず)が
必要であった。
【0075】
興味深いことに、完璧な被覆要件が緩和され、元の掃引容積に存在しなかったいくつか
のボクセルをボックス表現に含めることが許容される場合、必要なボックス数が大幅に減
少する可能性がある。この問題は今では複数の軸で考慮されるようになっている。ハード
な制約として、少なくとも元の掃引容積を被覆しなくてはならない。この制約下では、追
加被覆数をバランスさせながらこの被覆を達成するために必要なボックスの数が最小限に
抑えられる。この最適化を組み込むためにこのアルゴリズムに別のステップが実装される
。上記の集合被覆の後、その結果が一連のマージによって実行される。各反復にて、この
アルゴリズムは2つのボックスを選択し、これらのボックスはマージされると、この集合
に追加される最小の追加容積となる。このアルゴリズムの効果については、以下でより詳
細に説明する。個々のボックスと対向してボックスの表現を保存できることは、ボックス
内の構成数(membership)をチェックするハードウェアがこの変更を正当化するのに十分単
純である場合にのみ有用である。論理的には、ボクセルがボックス内にあるかどうかをチ
ェックするには、6つの比較がある。原点に最も近いボックスの頂点を(x;y;z
)とし、原点から最も遠いボックスの頂点を(x;y;z)とすると、(V
;V)に位置するボクセルがボックス内にあるかどうかのチェックは、次の不等式
が成立していることのチェックとなる。
【0076】
≦v≦x;y≦v≦y;z≦v≦z
【0077】
この作業は、6つのコンパレータを平行に1サイクルで実行することができる。又は、
少ない領域を使用するためにより少ないコンパレータを多重化することができる。
【0078】
図5は、ボクセルの代わりにボックスを使用した戦略の衝突検出アーキテクチャの例を
示している。ここでは、単一のボックスが例示されている。図5を参照すると、再構成可
能検出アーキテクチャ500は、制御ロジック510、記憶機構(521-1、...
521-n)及び比較器(522-1、...、522-n)の並列モジュール、及びA
ND論理ゲート530を含み、並列モジュールの出力を論理積して衝突結果を出力する。
図4に示す例のように、ボックス戦略アプローチは、(図ではラッチは示されているが)
任意の適切な記憶機構を使用することができる。
【0079】
各動作のモジュールは、そのようなボックスの多くの論理和である。図5では、ボクセ
ルではなくボックスを使用したデザインの単純さを見ることができる。プログラミング中
、対向する角の座標がラッチされる。実行時に、入ってくるボクセルはボックスの角を表
す保存された値と比較され、そのボクセルがボックス内にあるかどうかが確認される(た
とえば、入ってくるボクセルを保存された値と比較して、その結果をAND処理する)。
【0080】
図6A図6Dは、PRM内の単一の動作に対する掃引容積の表現が、表現戦略によっ
てどのように変化するかを示している。図6Aは、実際の掃引容積を示す。図6Bは、動
作用の個別ボクセルをすべて含む。 この掃引容積専用にハードコードされた回路が構築
されている場合、この動作は約10,000トランジスタを消費する。上記のように各ボ
クセルを明示的に表すプログラマブル回路を設計する場合は、660,000を超えるト
ランジスタが必要であり、65x以上の増加となる。図6Cは、個々のボクセルの代わり
に87ボックスを使用して記載した同じ掃引容積を示す。この戦略に必要な構造の場合、
わずか6200,000個以下のトランジスタの消費ですむ。その結果、ハードコーディ
ングされた回路に比べて4倍以下の増加になる。
【0081】
エッジモジュールの集計結果の出力を使用して、コストを割り当てる、又はPRMから
エッジを除去することができる。衝突検出(及びPRMのエッジへのコストの除去又は割
り当て)が完了すると、PRM上でグラフ探索が実行され、接続性が決定され、経路が構
築される。グラフ探索は、従来の動作計画アルゴリズムではボトルネックではないが、衝
突検出が加速される場合は制約要因になり得る。グラフ処理を高速化するプログラマブル
アーキテクチャを設計する上での課題は、合理的なリソース要件がありながらも、予想さ
れるグラフトポロジすべてを処理できる設計を実現することである。有利には、ここに記
載のPRMは、その最大度、最大エッジ重み、最大経路コストなどの特定の特性を保証す
ることができるように、事前に静的に構築される。これらの数量(quantities)をまとめる
ことにより、任意グラフが許可された場合よりもはるかにコンパクトで効率的な記憶構造
及びデータ経路の設計が可能になる。図示した例では、データフローアーキテクチャはベ
ルマンフォード法を実行するように設計されている。しかし、他の最短経路アルゴリズム
は、回路が物理的ネイバーではないにもかかわらず論理的ネイバーを識別するためのサポ
ートを含むハードウェアにおいて具現化されるように変更することができる。
【0082】
図7は、一実装例によるベルマンフォード計算ユニットの基本的なマイクロアーキテク
チャレイアウトを示す。包括的なアーキテクチャには、ベルマンフォード計算ユニット(
BFCU)で構成され、かつ再構成可能なトポロジを実現するために使用される低コスト
の相互接続ネットワークを介して接続された一連のノードが含まれる。図8は、例示的実
装用オンチップネットワークのための例示的なルータマイクロアーキテクチャを示す図で
ある。図9は、相互接続ネットワークの平面図を示す。経路探索アーキテクチャの動作は
3つのフェーズに分かれる。前処理フェーズでは、論理グラフから物理ハードウェアリソ
ースへのマッピングを作成する。プログラミングフェーズでは、アーキテクチャのデータ
構造を、手元のグラフに関する必要な情報で構成する。実行フェーズでは、分散版ベルフ
ォード法が実行され、最短経路が計算される。
【0083】
ベルフォード法は単一ソースの最短経路アルゴリズムである。まず、ソースを除くすべ
てのノードが無限大のコストに初期化される。各反復において、各ノードは、隣接ノード
の現コストを隣接ノードのエッジ重みに加算することによって、各隣接ノードをより良い
最短経路かどうかチェックする。このアルゴリズムは、ルーティングインフォーメーショ
ンプロトコルを実装するために分散式に一般に使用されるが、隣接コストだけでなく、ル
ーティングテーブル全体が通信されるという違いがある。
【0084】
コストのかかるメモリアクセスを避けるため、ベルマンフォード法を実装するデータフ
ローアーキテクチャが望ましい。このアーキテクチャは、特定のグラフ(又は自律型車両
の実施形態では格子)用に設計するのには単純であろうが、再プログラム化可能とする必
要性があると複雑になっていく。
【0085】
グラフ内のすべての論理ノードは、静的に、動作計画ハードウェアモジュール上の物理
BFCUに割り当てられる。プログラミングフェーズでは、BFCU内のいくつかのテー
ブルに値が設定される。ノードの論理的ネイバーそれぞれの物理アドレスはテーブルに保
存される。これらネイバー各々へのエッジ重みは別のテーブルに保存される。これらのテ
ーブルは一度埋めなければならないが、別のグラフに切り替えるまで再利用できる。
【0086】
各BFCUには、宛先への現在の最良コストを格納するレジスタもある(このアプリケ
ーションでは、ベルマンフォードは単一のソースアルゴリズムではなく単一の宛先として
扱われる)。これらのレジスタは無限大を表す最大値にすべて初期化される。最短経路探
索を開始するために、宛先ノードがマップされたBFCUがゼロコストに更新される。次
に、宛先ノードはその近隣テーブルを反復し、その近隣のエッジ重みにコスト(ゼロ)を
加えたメッセージを各隣接ノードに送信する。ネイバーはこのメッセージを受信すると、
この新コストと現コストとを比較する。新コストが現コストよりも低い場合、いくつかの
ことが起こる。第1に、ノードは、その最良のコストレジスタと次のホップポインタとを
更新する。第2に、それ自身のネイバーテーブル上で反復を開始して、そのネイバーの物
理アドレスを見つけ出し、そのそれぞれにそのネイバーのエッジ重みにコストを追加した
メッセージを送信する。
【0087】
プレ加算(pre-addition)の代わりにポスト加算(post-addition)の値を送信するという
決定は、偶然に見えるかもしれないが重要である。ポスト加算値を受信すると、ノードは
、隣接ウェイトのあるテーブルにアクセスするためのサイクルを待ち、加算を行い、次に
比較することのではなく(テーブルルックアップ中に届くメッセージを保存する必要があ
る)、単一サイクルでそのメッセージを処理するか廃棄するかを評価することができる。
新しい最善のコストを処理し、ネイバーテーブルを反復することは数サイクルかかるが、
各BFCUは各サイクルで1つのメッセージのスループットを維持することができる。新
コスト更新メッセージを受信したときに、更新を送信するためにBFCUがテーブルウォ
ークをしているプロセス中であると、2つの可能性がある。その新コストが改善の場合、
このテーブルウォーク上のまだ送信されていないメッセージは失効しているため、その反
復を中断して新コストで再起動することができる。新しいコストが改善でない場合、メッ
セージは破棄される。各サイクルでメッセージを処理する中断のない機能により、計算ノ
ードに入力バッファの必要がなくなり、クロックサイクルごとに各ノードでメッセージを
取り出せることにネットワークが頼ることができることになる。これは、相互接続ネット
ワークを議論する際に重要になる。
【0088】
コスト更新メッセージとは別に、BFCUは2つの他のタイプのメッセージも処理する
。BFCUが次のホップクエリを受信すると、BFCUは、最良コストを受信したネイバ
ーのアドレスで応答する。このクラスのメッセージは、経路自体が抽出されることを可能
にする。BFCUは、最良のコストクエリを受信することもできる。このクエリには、最
善のコストレジスタの現在の値で応答する。
【0089】
BFCUの動作は単純であるが、BFCUのサイズを十分に小さくして、アーキテクチ
ャが大きなグラフサイズに拡大できるように、いくつかのデザインを選択する必要がある
。各ノードが無限の数の論理的ネイバーを持つことが許可されている場合、例えば、その
ネイバーアドレステーブルは大きくなければならない。この戦略では、計画グラフを事前
計算する必要があるため、計画グラフの品質に影響を与えることなく、各ノードに最大で
4つの隣接ノードがあることが保証され得る。この制限は、必要に応じて、あまりにも多
くの隣接ノードを論理的にゼロのエッジ重みで接続された複数のノードに論理分割するこ
とによって克服することができる。同様の決定は、経路とエッジのコストを最大限にして
行う必要がある。
【0090】
分散版ベルマンフォード法は、ネットワークが失敗したリンクをより効果的に処理でき
るように、スプリットホライズン広告ポリシー(split-horizon advertisement policy)を
実装することがよくある。現在のアーキテクチャでは、グラフ探索が始まる前に衝突(計
画グラフの事実上失敗したリンク)が伝達され、その理由でスプリットホライズンを維持
する必要性がなくなる。より費用のかかるルートをノードの次のホップに広告することは
、依然として不必要にネットワーク帯域幅を占有する。ただし、シミュレーションでは、
これらの冗長なメッセージが性能にほとんど影響しない(経路探索完了時間の増加が1%
未満)ことが示されている。スプリットホライズンを実装しないことで、複雑さが抑えら
れる。
【0091】
これらの決定はすべて、各BFCUの設置面積をきわめて小さく保つのに役立つ。各ノ
ードには約6,000個のトランジスタが必要である。このうち、70%はプログラム可
能状態で構成され、残りは組み合わせ論理である。この適度なサイズにより、難しい課題
を解決するために必要な計算ノード数の実装が可能となる。
【0092】
ベルマンフォード実装を実現するために、各BFCUは、その論理的ネイバーと通信で
きる必要がある。しかし、設計は再構成可能でなければならないため、物理的BFCUの
海が所望のグラフトポロジの動作をエミュレートできるように、この通信はネットワーク
上で行わなければならない。このネットワークにより、物理的に隣接していなくても、B
FCUは通信問題を抽象化し、物理的に隣接しているかのように実際に接続されているか
のように動作することができる。
【0093】
有用な設計には何千ものノードがあるため、このネットワークは空間と動力の両方で効
率的でなければならない。提案されたマイクロアーキテクチャは、第一級の制約として、
大規模なネットワーク規模へのスケーリングを可能にする単純さを重視している。ネット
ワークを単純化又は最適化するには、いくつかの方法がある。第1の点は、BFCU間の
メッセージが非常に小さいため、各メッセージを単一のフリットとして構成できることで
ある。各メッセージが単一フリットであるため、複数フリットはめったに連続して移動し
ない。これにより、クレジットリターンレイテンシをカバーする必要がないため、各ポー
トで1つのバッファエントリのみで性能を維持することができる。ルータの各出力方向に
は、1つの関連クレジットがある。このクレジットは1から始まり、その方向にメッセー
ジを送信するとデクリメントされる。そのメッセージがネイバーのバッファエントリを空
にした場合、このクレジットは隣接ルータから直接帯域から戻される。この単一のバッフ
ァエントリスキームを実装することにより、面積が40%削減される。
【0094】
さらに検討すると、中間回転バッファ(intermediate turning buffer)も十分に活用さ
れていないように思われた。東西方向のリソースを解放することによってスループットを
助ける代わりに、それは単純に恩恵なしに回転ペナルティを導入していた。旋回バッファ
を完全に取り外しても、性能はほとんど変化なかった。これは、部分的には、分散型ベル
マンフォード法が生成するトラフィックが少ないことと、BFCUはサイクル毎にメッセ
ージを処理できるので、取り出されるのを待つ入力バッファ内に停止することがほぼない
(2つのメッセージが同じ同時にノードに届いた場合のみ)ことによる。この最適化によ
り、イースト/ウェスト入力バッファをノース/サウス/エジェクションマルチプレクサ
(North/South/Ejection muxes)に直接接続することで、ルータのサイズをさらに縮小する
ことができた。
【0095】
さらに、我々の分散版ベルマンフォード法の特性は、このルータで通常要件であるよう
に、スターベーション回避プロトコル(starvation avoidance protocol)の実装を避ける
。このネットワーク内の新メッセージは、アルゴリズムの進行に伴い(より良いコストが
受け取られると)生成されるだけなので、ネットワーク内の任意の場所での停止(stall)
がアルゴリズム的に保証され、最終的に残りのネットワークが静止する。この休止状態は
、メッセージを継続するために必要なリソースいずれをも解放する。シミュレーションは
、これらの停止が極めてまれであることを示している。図8に示すルータアーキテクチャ
の設計では7,500個のトランジスタを消費する。これの約65%は4つのシングルエ
ントリー入力バッファであり、これは個々のルータのバッファ要求を減らす重要性を示し
ている。
【0096】
再構成可能なネットワークの提案された設計の1つの目標は、多種多様なネットワーク
で良好な性能を実現する能力である。これを達成するには、論理的計画グラフ構成を物理
的BFCUにスマートマッピングする必要がある。通信レイテンシを最小限に抑えるには
、理想的には論理的ネイバーを物理的に隣接するBFCUにマッピングするが、これは計
画グラフのトポロジによって常に可能とは限らない。BFCUの物理的ネットワークは2
Dメッシュであるが、論理的計画グラフはロボットの高次元構成空間で作成されているた
め、平面図ではあり得ない。
【0097】
前処理フェーズの間にこのマッピング問題に対する許容可能な解を得るため、シミュレ
ーテッドアニーリング手法を使用した。シミュレーテッドアニーリングは、複雑な状態空
間の最適性を探索するための古典的な手法である。まず、論理ノードを物理メッシュ上の
位置にランダムに割り当てる。このシステムは、特定の「温度」及び冷却速度で初期化さ
れる。各反復にて、このシステムは隣接状態に移行しようとする。隣接状態は、ノード(
ノードA)をランダムに選択することによって生成される。ノードAの論理的ネイバー(
ノードB)の1つが選択され、1つの物理的位置がノードBのネイバー近傍でランダムに
選択される。このネイバー状態は、このロケーションに現在マップされているどの論理ノ
ードでもノードAとスワップすることによって構築される。この新しい状態がシステムの
エネルギ(本出願では、論理的ネイバー間の平均物理的距離として定義される)を減少さ
せる場合、それは受け入れられる。システムのエネルギを増加させる場合には、システム
の現在の温度に依存する確率で受け入れられる。温度が高いほど、システムはより高いエ
ネルギのネイバー状態を受け入れる可能性が高い。より高いエネルギ状態を受け入れるこ
とにより、アルゴリズムは局所的な最小値からその道を見つけることができる。各反復に
おいて、その温度は冷却速度で指数関数的に減少する。
【0098】
最短経路アーキテクチャと衝突検出アーキテクチャとの間のインターフェースは、相互
接続ネットワーク上のポイントで発生する。これらの点は、「制御ノード」と呼ばれるこ
とがある。図9は、相互接続ネットワークの周辺に位置する制御ノードを示す。衝突検出
モジュールは、どの動作(グラフエッジ)が制御ノードに衝突しているかを表すビットベ
クトルを送信する。衝突における各動作について、制御ノードは、BFCUが次のクエリ
にそのエッジを使用すべきでないことを示すメッセージを、エッジの両側のノードに割り
当てられたBFCUに送信する。制御ノードはまた、完了時に経路自体を収集する役割を
担う。この目的のために、制御ノードに最短経路探索の状態をどのように評価するかを指
示するパラメータが(プログラミングフェーズ中に)設定される。これには、ソースノー
ドの最高コストを調べ始めるまでに待機するサイクル数と、完了を示す条件が含まれる。
これらの条件は、後述するように、静的解析によって決定することができる。制御ノード
のサイズは、関連する構成の物理アドレスにエッジIDのマッピングを保持するのに必要
なストレージによって支配される。このマッピングにより、制御ノードは衝突検出結果を
ネットワーク上の適切な場所に転送することができる。128×128メッシュが実装さ
れている場合、各制御ノードはほぼ190,000個のトランジスタを消費し、そのほと
んどはマッピングテーブルである。
【0099】
この実装例では、ロボットではどこにでも存在するため、ピックアンドプレースを評価
する。PRMを、Kinova製6自由度のJacoIIロボットアーム用に様々なサイ
ズで生成した。実験は、無作為に配置され、かつサイズが設定された障害物と様々なソー
ス/宛先の対からなるサンプリングした環境で実行された。4,000から256,00
0のエッジに及ぶPRMの問題を解決するシステムの動作をテストしたが、その面積とタ
イミングの数値は、16,000ノード及び32,000エッジPRMの問題を解決する
128x128の実装に焦点を当てる。このサイズであれば、このロボット空間における
難しい問題を解決するのに十分である。
【0100】
シノプシス(Synopsys)社のツールチェーンとNanGateオープンセルラ
イブラリ15nm(Open Cell Library)を使用して設計を組み合わせ
、性能、面積、消費電力の見積もりを出した。以下の数字は、16,384ノード(12
8x128)で実装した場合の数値である。面積はトランジスタ数で与えられ、これはテ
クノロジ・ノードから独立していなければならないが、レイテンシと電力の推定はこの積
極的な特徴サイズ(aggressive feature size)に依存する。
【0101】
衝突検出アーキテクチャは、使用される計画グラフのエッジと完全に平行であるため、
そのレイテンシ時間は処理する必要のある障害物の数にのみ左右される。この実験でサン
プリングしたランダムなピックアンドプレース環境では、平均750個の障害ボクセルが
あった。つまり、各ボクセルは処理に1サイクルしか必要ないため、衝突チェックに平均
750サイクルかかることを意味する。
【0102】
提案された最短経路アーキテクチャの有効性をテストするため、サイクル精度のシミュ
レータを、相互接続ネットワークと関連BFCU用に記述した。この設計にはVeril
ogを使用し、小規模な実装では機能の正確性のテストにRTLシミュレータを使用した
が、RTLシミュレータで16,384ノードの実装に数千回のタイミング実験を実行す
る時間は限定的である。このシミュレータは、マイクロアーキテクチャの開発と最終結果
の効率的なプロファイリングを行う設計スペースの迅速な探索である。
【0103】
16,000ノードのグラフでは、完了までの平均時間は360サイクルである。グラ
フ探索速度自体に加えて、評価すべき設計の一態様は、探索完了を検出する方法である。
図10は、5,000を超えるサンプリングをした環境でシミュレートされた、2つのサ
イズのロードマップについて様々な時点で完了する確率を示している。データの静的解析
を使用してパラメータを選択し、プログラミングフェーズ中に経路抽出モジュールを構成
して完了を識別した。16,000ノードのグラフでは、この戦略で99%以上の完了を
正しく識別する。これは、270の余分なサイクルの平均オーバーヘッドになる。
【0104】
この方法は、経路探索時に経路探索が完了していることが厳密に保証されていないもの
の、無効経路を返すことはなく、準最適経路であるだけであるため許容範囲内である。ほ
とんど起こらないが、パラメータが適切に選択され、かつこれが特定のアプリケーション
に適切でない場合、このアルゴリズムはグラフ内のノード数で制限された速度で確実に静
止し、より控えめな(conservative)パラメータ設定を使用することができる。
【0105】
完全な経路探索と高精度検出の両方に時間を集約すると、平均630サイクルが得られ
る。しかし、ハードウェア設計では一般的であるように、データの移動は計算と同じくら
い時間がかかる。衝突をBFCUに伝え、実際に経路を抽出するには、950サイクルの
追加のオーバーヘッドがある。衝突検出の実行時間を含めて、障害物のボクセルが到着し
てから経路が出力可能になるまでの総平均レイテンシは2,330サイクルである。シノ
プシス社の合成では、この設計が1GHzで容易にクロックされることが示されており、
これは2.3マイクロ秒のレイテンシに相当する。このレイテンシは、従来のサンプリン
グベースのプランナよりも約5桁速く、以前から提案されているアクセレータよりも2桁
も高速である。
【0106】
合計で16,384ノードの設計では、約23億個のトランジスタが消費される。大部
分のスペースは、単純化されたボックス表現であっても、衝突検出モジュールで埋められ
る。次に大きなコンポーネントはネットワークノードであり、4つのシングルエントリバ
ッファ(single-entry buffers)によって支配される。シノプシス社は、設計の消費電力を
35ワットと推定している。面積数と同様に、これは大部分が衝突検知モジュールからの
ものであり、残りはネットワークからのものである。
【0107】
図11Aは、ロードマップ内のエッジ数に対する衝突チェックのレイテンシのプロット
を示す。図11Bは、ロードマップのエッジ数に対する最短経路探索のレイテンシのプロ
ットを示す。性能のスケールが問題サイズに比例してどのように拡大するかを検討するこ
とも重要である。図11Aは、各エッジに専用のハードウェアが存在するため、衝突検出
の実行時間がPRMのエッジ数に依存しないことを示している。16,384ノードの実
装では最大32,768のエッジを処理できるが、この設計はより大きな実装へと容易に
拡張できる。図11Aはまた、CPU及びGPU上に実装された同じ事前計算を利用する
戦略を示すことによって、専用ハードウェアと比較して積極的な事前計算からどのような
利益が得られるかを解明するのに役立つ。CPUバージョンは、8GBのRAMを搭載し
た4コアのHaswelli7上で実行される高度に最適化されたCプログラムであり、
すべてのハードウェアスレッドを利用するOpenMPディレクティブを備えている。G
PUバージョンは、TeslaK80で動作するうまくチューニングされたCUDAカー
ネルである。これらの戦略はどちらも、実行時に従来のサンプリングベースのプランナを
実行する場合に比べて約10倍のスピードアップを実現するが、ここに提案の解決策より
もはるかに低速である。
【0108】
図11Bは、提案の再構成可能なベルマンフォードハードウェアベースの最短経路アル
ゴリズムのスケーリング動作を示し、このカスタムハードウェアソリューションの必要性
を示している。各ノードに専用のハードウェアを持たせることで、グラフの平均ホップ数
で線形にスケーラビリティを向上させることができる。提案のカスタムハードウェアソリ
ューションに加えて、CPU及びGPU上の最短経路探索のパフォーマンスも示されてい
る。CPUは、最適化されたロボットソフトウェアパッケージであるKlamptで最短
経路実装を実行する4コアのHaswell i7である。GPUは、Tesla K8
0のnvGraphグラフ分析APIを使用して、最短経路で動作している。提案のアー
キテクチャでは、最短経路と衝突検出とを緊密に結合させる必要があるため、GPUはP
CI-eを介した通信を含んでいるが、どちらの実装でも適正にすべきデータ移動オーバ
ーヘッドは含まれていなかった(この数値は計算時間に厳密に関係している)。それでも
、GPUの計算時間は実際には小さなグラフサイズのCPUよりも遅く、約32,000
のエッジを横断し、ここに提示する提案解決策よりも数桁遅いままである。これは、最短
経路のレイテンシを加速衝突検出と同じオーダーの大きさにするために、カスタムハード
ウェアソリューションが必要であることを示している。
【0109】
評価すべき衝突検出を実行するためのボックス化戦略にはいくつかの側面がある。第1
は、ハードウェアコスト削減の追求する上で、掃引容積表現におけるボックスの数を積極
的に減らす技術である。ボックス化した衝突検出用の上述アルゴリズムを使用して、50
,000のエッジロードマップ上のパラメータ空間の掃引を実施し、ハードウェア予算と
表現量の増加との間のトレードオフを評価した。
【0110】
図12は、ハードウェア予算と表現量の増加との間のトレードオフの視覚化したもので
ある。オリジナルのボクセル化容積を正確に表す平均ボクセル数は127である。しかし
、上述のアルゴリズムを使用すると、わずか64のボックス予算で、各表現の平均容積が
ちょうど11%増加する。この最適化が安全であることに十分留意されたい。なぜなら、
容積が追加されるだけで削除されることはなく、現状のまま衝突動作に誤ってフラグが立
てられることはないからである。各ボックス表現のサイズが2つのボクセルに等しいこと
を考えると、ボクセルで容積を表現する方がボクセルよりもはるかに効率的である。もう
1つの問題は、このより粗い表現が、アーキテクチャが最適経路を見つける能力を低下さ
せる頻度である。50,000のエッジPRMを、個別のボクセル表示と10%量を増加
させたボクセル化戦略との両方を使用して、5,000のサンプリングされた場所のピッ
クアンドプレース環境に対してテストした。容積を10%増加させた場合、失敗率はわず
か0.13%の増加であった。残りの経路のうち、平均経路長は0.59%増加した。こ
の小さなマイナス要素は、ボックスを使用した完璧なカバーと比較して、ハードウェアコ
ストが50%減少していることによって十分に相殺される。これらの結果から、ボックス
表現による衝突検出を実行する戦略が、必要なハードウェアリソースを効果的に削減し、
経路品質も維持することがわかる。
図1
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図7
図8
図9
図10
図11A
図11B
図12