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

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

▶ エックス デベロップメント エルエルシーの特許一覧

<>
  • 特表-動的確率的運動計画 図1
  • 特表-動的確率的運動計画 図2A
  • 特表-動的確率的運動計画 図2B
  • 特表-動的確率的運動計画 図3
  • 特表-動的確率的運動計画 図4
  • 特表-動的確率的運動計画 図5
  • 特表-動的確率的運動計画 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-31
(54)【発明の名称】動的確率的運動計画
(51)【国際特許分類】
   G05D 1/02 20200101AFI20220124BHJP
【FI】
G05D1/02 S
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021514996
(86)(22)【出願日】2019-12-20
(85)【翻訳文提出日】2021-05-28
(86)【国際出願番号】 US2019067728
(87)【国際公開番号】W WO2020132386
(87)【国際公開日】2020-06-25
(31)【優先権主張番号】16/229,484
(32)【優先日】2018-12-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】516326438
【氏名又は名称】エックス デベロップメント エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】デュピュイ,ジャン-フランソワ
(72)【発明者】
【氏名】ゴ,キーガン
(72)【発明者】
【氏名】ヘンメル,マイケル
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301BB14
5H301CC03
5H301CC06
5H301GG05
5H301LL01
(57)【要約】
PRMに関連してキャッシュされた行程容積プロファイルデータを使用して、ロボットの運動計画の種々の側面を改善する技法及びシステムが開示される。幾つかの実施では、物理的エリア内のロボットにより走行可能なパスを表す第1のマップが生成される。第1のマップ内のロボットの初期パスが決定される。物理的エリア内の可動物体により走行されるパスを表す第2のマップを示すデータが取得される。エッジのサブセットに含まれる1つ又は複数のエッジに関連する潜在的な障害物が検出される。次に、第1のマップ内のロボットの調整済みパスが、潜在的な障害物に基づいて決定される。
【選択図】図1
【特許請求の範囲】
【請求項1】
1つ又は複数のコンピュータにより実行される方法であって、
前記1つ又は複数のコンピュータにより、物理的エリア内でロボットにより走行されることが可能なパスを表す第1のマップを生成することであって、前記第1のマップは、(i)それぞれが前記第1のマップ内のノードを接続する第1の複数のエッジ及び(ii)前記第1の複数のエッジに含まれる各エッジの前記ロボットの行程容積プロファイルを含む、生成することと、
前記1つ又は複数のコンピュータにより、前記第1のマップ内の前記ロボットの初期パスを決定することであって、前記初期パスは前記第1の複数のエッジの中からのエッジのサブセットを指定する、決定することと、
前記1つ又は複数のコンピュータにより、前記物理的エリア内の可動物体により走行されるパスを表す第2のマップを示すデータを取得することであって、前記第2のマップは、(i)それぞれが前記第2のマップ内のノードを接続する第2の複数のエッジ及び(ii)前記第2の複数のエッジに含まれる各エッジの前記可動物体の行程容積プロファイルを含む、取得することと、
前記第1の複数のエッジの前記ロボットの前記行程容積プロファイル及び前記第2の複数のエッジの前記可動物体の前記行程容積プロファイルに基づいて、前記1つ又は複数のコンピュータにより、前記エッジのサブセットに含まれる1つ又は複数のエッジに関連する潜在的な障害物を検出することと、
前記潜在的な障害物の前記検出に基づいて、前記第1のマップ内の前記ロボットの調整済みパスを決定することであって、前記調整済みパスは、前記複数のエッジの中からのエッジの異なるサブセットを指定する、決定することと、を含む方法。
【請求項2】
前記物理的エリア内の前記可動物体により走行されるパスは、前記第2のマップ内のエッジの第2のサブセットを指定し、
エッジの前記サブセットに含まれる1つ又は複数のエッジに関連する潜在的な障害物を検出することは、
前記初期パスにより指定されるエッジの前記サブセットに関連する前記ロボットの前記行程容積プロファイルとエッジの前記第2のサブセットに関連する前記可動物体の前記行程容積プロファイルとを比較することと、
前記初期パスにより指定されたエッジの前記サブセットに関連する前記ロボットの前記行程容積プロファイルとエッジの前記第2のサブセットに関連する前記可動物体の前記行程容積プロファイルとの比較に基づいて、エッジの前記第1のサブセット内の1つ又は複数のエッジ及びエッジの前記第2のサブセット内の1つ又は複数のエッジが、前記物理的エリア内の重複領域に対応すると判断することと、
エッジの前記第1のサブセット内の1つ又は複数のエッジ及びエッジの前記第2のサブセット内の1つ又は複数のエッジが、前記物理的エリア内の重複領域に対応するとの判断に基づいて、エッジの前記第1のサブセットに含まれる前記1つ又は複数のエッジに潜在的な障害物が関連すると判断することと、を含む、請求項1に記載の方法。
【請求項3】
前記第1の複数のエッジの前記ロボットの前記行程容積プロファイルに含まれる各行程容積プロファイルは、前記複数のエッジの中からの特定のエッジに関連して物理的空間内の前記ロボットによる最大トラバース可能エリアを指定する、請求項1又は2に記載の方法。
【請求項4】
前記第1の複数のエッジの前記ロボットの前記行程容積プロファイルに含まれる各行程容積プロファイルは、前記複数のエッジの中からの特定のエッジに関連して物理的空間内の前記ロボットによる前記最大トラバース可能容積を表す1組のボクセルを指定する、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記可動物体は、前記物理的エリア内を走行する第2のロボットを含む、請求項1~4の何れか1項に記載の方法。
【請求項6】
前記第1のマップ内の前記ロボットの調整済みパスを決定することは、
前記初期パスに対応する複数の代替パスを識別することであって、
前記複数の代替パス内の各代替パスは、(i)前記初期パスの開始点を表す第1のエッジ及び(ii)前記初期パスの終了点を表す第2のエッジを含み、
各代替パスは、前記第1のエッジと前記第2のエッジとの間の異なる組の中間エッジを含む、識別することと、
前記複数の代替パスの中から特定の代替パスを前記調整済みパスとして選択することと、を含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記複数の代替パスの中から特定の代替パスを前記調整済みパスとして選択することは、
前記複数の代替パス内の各代替パスについて、特定の代替パスに沿って検出された障害物の確率を表すスコアを計算することと、
前記代替パスに沿って検出された障害物の確率を表すスコアに基づいて、前記複数の代替パスの中の前記特定の代替パスを前記調整済みパスとして選択することと、を含む、請求項6に記載の方法。
【請求項8】
前記方法は、前記検出された障害物に関連するエッジの前記サブセットに含まれるエッジの数が所定の閾値を満たすと判断することをさらに含み、
前記第1のマップ内の前記ロボットの調整済みパスを決定することは、
前記検出された障害物に関連するエッジの前記サブセットに含まれるエッジの数が前記所定の閾値を満たすとの判断に基づいて、前記初期パスを無効化することと、
前記第1のマップ内の前記ロボットの新しい初期パスを再計算することと、を含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記新しい初期パスは、前記複数のエッジの中からエッジの新しいサブセットを指定し、
前記エッジの新しいサブセットは、エッジの前記サブセットに含まれていなかったエッジを含み、
エッジの前記サブセットに含まれていなかったエッジの数は閾値を超える、請求項8に記載の方法。
【請求項10】
前記第1のマップは第1の確率的ロードマップであり、前記第2のマップは第2の確率的ロードマップである、請求項1~9の何れか1項に記載の方法。
【請求項11】
1つ又は複数のコンピュータと、
前記1つ又は複数のコンピュータにより実行されると、前記1つ又は複数のコンピュータに動作を実行させる命令を記憶する1つ又は複数の記憶装置と、
を備えるシステムであって、前記動作は、
前記1つ又は複数のコンピュータにより、物理的エリア内でロボットにより走行されることが可能なパスを表す第1のマップを生成することであって、前記第1のマップは、(i)それぞれが前記第1のマップ内のノードを接続する第1の複数のエッジ及び(ii)前記第1の複数のエッジに含まれる各エッジの前記ロボットの行程容積プロファイルを含む、生成することと、
前記1つ又は複数のコンピュータにより、前記第1のマップ内の前記ロボットの初期パスを決定することであって、前記初期パスは前記第1の複数のエッジの中からのエッジのサブセットを指定する、決定することと、
前記1つ又は複数のコンピュータにより、前記物理的エリア内の可動物体により走行されるパスを表す第2のマップを示すデータを取得することであって、前記第2のマップは、(i)それぞれが前記第2のマップ内のノードを接続する第2の複数のエッジ及び(ii)前記第2の複数のエッジに含まれる各エッジの前記可動物体の行程容積プロファイルを含む、取得することと、
前記第1の複数のエッジの前記ロボットの前記行程容積プロファイル及び前記第2の複数のエッジの前記可動物体の前記行程容積プロファイルに基づいて、前記1つ又は複数のコンピュータにより、前記エッジのサブセットに含まれる1つ又は複数のエッジに関連する潜在的な障害物を検出することと、
前記潜在的な障害物の前記検出に基づいて、前記第1のマップ内の前記ロボットの調整済みパスを決定することであって、前記調整済みパスは、前記複数のエッジの中からのエッジの異なるサブセットを指定する、決定することと、を含むシステム。
【請求項12】
前記物理的エリア内の前記可動物体により走行されるパスは、前記第2のマップ内のエッジの第2のサブセットを指定し、
エッジの前記サブセットに含まれる1つ又は複数のエッジに関連する潜在的な障害物を検出することは、
前記初期パスにより指定されるエッジの前記サブセットに関連する前記ロボットの前記行程容積プロファイルとエッジの前記第2のサブセットに関連する前記可動物体の前記行程容積プロファイルとを比較することと、
前記初期パスにより指定されたエッジの前記サブセットに関連する前記ロボットの前記行程容積プロファイルとエッジの前記第2のサブセットに関連する前記可動物体の前記行程容積プロファイルとの比較に基づいて、エッジの前記第1のサブセット内の1つ又は複数のエッジ及びエッジの前記第2のサブセット内の1つ又は複数のエッジが、前記物理的エリア内の重複領域に対応すると判断することと、
エッジの前記第1のサブセット内の1つ又は複数のエッジ及びエッジの前記第2のサブセット内の1つ又は複数のエッジが、前記物理的エリア内の重複領域に対応するとの判断に基づいて、エッジの前記第1のサブセットに含まれる前記1つ又は複数のエッジに潜在的な障害物が関連すると判断することと、を含む、請求項11に記載のシステム。
【請求項13】
前記第1の複数のエッジの前記ロボットの前記行程容積プロファイルに含まれる各行程容積プロファイルは、前記複数のエッジの中からの特定のエッジに関連して物理的空間内の前記ロボットによる最大トラバース可能エリアを指定する、請求項11又は12に記載のシステム。
【請求項14】
前記第1の複数のエッジの前記ロボットの前記行程容積プロファイルに含まれる各行程容積プロファイルは、前記複数のエッジの中からの特定のエッジに関連して物理的空間内の前記ロボットによる前記最大トラバース可能容積を表す1組のボクセルを指定する、請求項11~13のいずれか1項に記載のシステム。
【請求項15】
前記可動物体は、前記物理的エリア内を走行する第2のロボットを含む、請求項11~14のいずれか1項に記載のシステム。
【請求項16】
前記第1のマップ内の前記ロボットの調整済みパスを決定することは、
前記初期パスに対応する複数の代替パスを識別することであって、
前記複数の代替パス内の各代替パスは、(i)前記初期パスの開始点を表す第1のエッジ及び(ii)前記初期パスの終了点を表す第2のエッジを含み、
各代替パスは、前記第1のエッジと前記第2のエッジとの間の異なる組の中間エッジを含む、識別することと、
前記複数の代替パスの中から特定の代替パスを前記調整済みパスとして選択することと、を含む、請求項11~15のいずれか1項に記載のシステム。
【請求項17】
前記第1のマップは第1の確率的ロードマップであり、前記第2のマップは第2の確率的ロードマップである、請求項11~16のいずれか1項に記載のシステム。
【請求項18】
1つ又は複数のコンピュータにより実行されると、前記1つ又は複数のコンピュータに動作を実行させるコンピュータプログラム命令が符号化された1つ又は複数のコンピュータ可読記憶装置であって、前記動作は、
前記1つ又は複数のコンピュータにより、物理的エリア内でロボットにより走行されることが可能なパスを表す第1のマップを生成することであって、前記第1のマップは、(i)それぞれが前記第1のマップ内のノードを接続する第1の複数のエッジ及び(ii)前記第1の複数のエッジに含まれる各エッジの前記ロボットの行程容積プロファイルを含む、生成することと、
前記1つ又は複数のコンピュータにより、前記第1のマップ内の前記ロボットの初期パスを決定することであって、前記初期パスは前記第1の複数のエッジの中からのエッジのサブセットを指定する、決定することと、
前記1つ又は複数のコンピュータにより、前記物理的エリア内の可動物体により走行されるパスを表す第2のマップを示すデータを取得することであって、前記第2のマップは、(i)それぞれが前記第2のマップ内のノードを接続する第2の複数のエッジ及び(ii)前記第2の複数のエッジに含まれる各ノードの前記可動物体の行程容積プロファイルを含む、取得することと、
前記第1の複数のエッジの前記ロボットの前記行程容積プロファイル及び前記第2の複数のエッジの前記可動物体の前記行程容積プロファイルに基づいて、前記1つ又は複数のコンピュータにより、前記エッジのサブセットに含まれる1つ又は複数のエッジに関連する潜在的な障害物を検出することと、
前記潜在的な障害物の前記検出に基づいて、前記第1のマップ内の前記ロボットの調整済みパスを決定することであって、前記調整済みパスは、前記複数のエッジの中からのエッジの異なるサブセットを指定する、決定することと、を含む、1つ又は複数のコンピュータ可読記憶装置。
【請求項19】
前記物理的エリア内の前記可動物体により走行されるパスは、前記第2のマップ内のエッジの第2のサブセットを指定し、
エッジの前記サブセットに含まれる1つ又は複数のエッジに関連する潜在的な障害物を検出することは、
前記初期パスにより指定されるエッジの前記サブセットに関連する前記ロボットの前記行程容積プロファイルとエッジの前記第2のサブセットに関連する前記可動物体の前記行程容積プロファイルとを比較することと、
前記初期パスにより指定されたエッジの前記サブセットに関連する前記ロボットの前記行程容積プロファイルとエッジの前記第2のサブセットに関連する前記可動物体の前記行程容積プロファイルとの比較に基づいて、エッジの前記第1のサブセット内の1つ又は複数のエッジ及びエッジの前記第2のサブセット内の1つ又は複数のエッジが、前記物理的エリア内の重複領域に対応すると判断することと、
エッジの前記第1のサブセット内の1つ又は複数のエッジ及びエッジの前記第2のサブセット内の1つ又は複数のエッジが、前記物理的エリア内の重複領域に対応するとの判断に基づいて、エッジの前記第1のサブセットに含まれる前記1つ又は複数のエッジに潜在的な障害物が関連すると判断することと、を含む、請求項18に記載の1つ又は複数のコンピュータ可読記憶装置。
【請求項20】
前記第1の複数のエッジの前記ロボットの前記行程容積プロファイルに含まれる各行程容積プロファイルは、前記複数のエッジの中からの特定のエッジに関連して物理的空間内の前記ロボットによる最大トラバース可能エリアを指定する、請求項18又は19に記載の1つ又は複数のコンピュータ可読記憶装置。
【請求項21】
前記第1の複数のエッジの前記ロボットの前記行程容積プロファイルに含まれる各行程容積プロファイルは、前記複数のエッジの中からの特定のエッジに関連して物理的空間内の前記ロボットによる前記最大トラバース可能容積を表す1組のボクセルを指定する、請求項18~20のいずれか1項に記載の1つ又は複数のコンピュータ可読記憶装置。
【請求項22】
前記可動物体は、前記物理的エリア内を走行する第2のロボットを含む、請求項18~21のいずれか1項に記載の1つ又は複数のコンピュータ可読記憶装置。
【請求項23】
前記第1のマップは第1の確率的ロードマップであり、前記第2のマップは第2の確率的ロードマップである、請求項18~22のいずれか1項に記載の1つ又は複数のコンピュータ可読記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本明細書は、一般的にはロボット工学に関する技術、より詳細には運動計画システムに関する技術を記載する。
【背景技術】
【0002】
[0002] ロボット技術の運動計画システムは、確率的ロードマップ(PRM)を使用して、衝突を回避しながらロボットの開始点とロボットの終了点との間のパスを決定することができる。例えば、運動計画システムはPRMを使用して、ロボットの空間からランダムサンプルをとり、それらをテストして、サンプリングされた場所が自由(例えば、妨げのない)空間であるか否かを判断することができる。PRMは、空間内の指定された座標を表すノードと、これらのノードを接続し、2つのノード間のロボットによる移動を表すエッジとを指定することができる。
【発明の概要】
【0003】
[0003] 確率的ロードマップ(PRM)を使用する運動計画は多くの場合、構築フェーズ及びクエリフェーズを含む。構築フェーズでは、ロードマップ(又はグラフ)が生成されて、環境で行うことができる運動を近似する。本明細書で使用される場合、PRMとは、構築フェーズ中に生成されるロードマップ又はグラフを指す。ランダムノードがまず作成され、次に近傍ノード、例えば所定の距離内の最近傍ノードに接続される。次に、ノード及びエッジは、ロードマップが空間における異なる運動経路を表すのに十分に密になるまでグラフに追加される。例えば、マップ生成器は、ロボットが移動し得る空間からランダムサンプルをとり、サンプルをテストして、ロボットが占有し得る領域をサンプルが表すか否かを判断することができる。次に、マップ生成器はサンプリングされた点又はノードを接続して、エッジをグラフにおいて作成することができる。クエリフェーズでは、開始点及び終了点がグラフに接続され、ロボットのためのパスが識別される。例えば、グラフ検索アルゴリズムをマップにより表されるグラフに適用して、ロボットが開始点から終了点までに辿るパス(例えば、一連のエッジ)を決定することができる。
【0004】
[0004] 幾つかの実施では、システムは、マップ(例えば、PRM又は他のマップ)に関連してキャッシュされた行程容積プロファイルデータを使用して、ロボットの運動計画の種々の側面を改善することができる。計画された運動は、物理的エリア等の空間内の遷移を表し得る。幾つかの実施では、行程容積は、ロボット(又はアーム若しくは付属物等のロボットの構成要素)が、マップ(例えばPRM)において定義されるエッジに沿って走行する間に通る又は占有する空間を表す。例えば、エッジの行程容積は、エッジに沿って走行中のロボットによりトレースされる容積を表す三次元容積であり得る。行程容積プロファイルデータは、マップ内の各エッジでのロボットによる予測運動の行程容積を識別し、それにより、システムは、パスをより計算的に効率的に且つより短い遅延で計算し調整することができる。例えば、初期計算段階後、システムは、ロボットの運動パスを構成することを含むクエリを受信すると、クエリ受信後に行程容積を即座に推定する必要なく、行程容積プロファイルデータにおいて既に指定されたキャッシュされた情報を使用してパスを構成することができる。このようにして、初期マップ計算段階中に計算された行程容積プロファイルデータは、受信した各クエリに対して既に使用可能な状態であり、システムは、クエリ毎に行程容積を計算する遅延又は不効率性を生じさせない。別の例として、システムはキャッシュされた情報を使用して、衝突検出処理の速度を改善することができ、その理由は、システムがキャッシュされた行程容積情報を使用して、パスが調整される都度、衝突についてチェックすることができ、それにより、各パス調整で行程容積情報を再計算する必要性を回避するためである。この手法の効率及び速度改善は、特に共通エリアにおける複数のロボットの移動を調整するシステムにおいてかなり大きなものであり得る。
【0005】
[0005] システムはまた、キャッシュされた行程容積プロファイルデータを使用して、パス調整プロセスに関連する計算複雑性をさらに低減することもでき、その理由は、パス調整プロセスが衝突検出に関するためである。例えば、システムが初期パスに沿った潜在的な衝突を検出する場合、パス全体を再計算する代わりに、システムは潜在的な衝突近傍にあるパスの影響を受けるノード又はエッジを識別し、それを迂回することができる。システムは、潜在的な衝突により影響を受けるエッジについてのキャッシュされた行程容積情報に基づいて初期パスの部分を調整することができる。この状況では、行程容積プロファイルデータはエッジ固有のキャッシュされた行程容積情報、すなわち、マップ内で指定された個々のエッジの行程容積情報を含むため、システムは、潜在的な衝突により影響を受ける可能性が高いと判断された初期パスの部分のみを調整することが可能である(例えば、システムは初期パスの影響を受けない部分の再計算及び変更を回避することができる)。
【0006】
[0006] 全体を通して説明されるように、「ロボット」とは、動作を自動的に実行することが可能なマシンを指し、そのような動作はコンピュータによりプログラム可能である。例えば、ロボットは、所与の環境で移動することが可能なものであることができる。モバイルロボットは、物理的又は電子機械的ガイダンスデバイスの必要なく、環境をナビゲートすることが可能であり得る。幾つかの場合、モバイルロボットは、比較的制御された空間において予め定義されたナビゲーションルートを走行できるようにするガイダンスデバイスに依拠することができる。別の例として、ロボットは、固定された表面に取り付けられた産業ロボットであることができる。産業ロボットはワークセル内でタスクを実行し、同じワークセルで動作している他の産業ロボット(例えば、工場内で車を溶接する複数のロボット)との衝突を避けるように構成される。産業ロボットは、特に多関節アーム(例えばマルチリンクマニピュレータ)、グリッパアセンブリ(例えばエンドエフェクタ)、又はロボットアームに取り付けられたツール/エンドエフェクタであることができる。
【0007】
[0007] 以下にさらに考察するように、「行程容積」とは、時に時間期間にわたる物体の運動に基づいて、ロボット等の物体により占有される全ての点を含む容積を指す。例えば、パスに沿って移動する物体では、行程容積は、パスに沿って走行する間に物体が占有する、空間における点-物体により占有される初期容積、物体により占有される終了容積、及び物体がそれらの間を通る全ての点-を表すことができる。物体のマップのエッジに関連する行程容積は、物体がエッジにより表されたパスに沿って移動する際、物体(例えばロボット)が通ると計算された合計容積を表す。以下に詳述するように、幾つかの場合、物体の行程容積は、行程容積の二次元表現を表すピクセルを含む画像を使用して表すことができる。他の場合、物体の行程容積は、物理的エリア内の物体により占有され得る空間に一致するボクセルとして表すことができる。行程容積及び他のデータ構造の他の表現を同様に使用することもできる。
【0008】
[0008] 一般的な一態様では、コンピュータ実施方法は、1つ又は複数のコンピュータにより、物理的エリア内でロボットにより走行されることが可能なパスを表す第1のマップを生成することであって、第1のマップは、(i)それぞれが第1のマップ内のノードを接続する第1の複数のエッジ及び(ii)第1の複数のエッジに含まれる各エッジのロボットの行程容積プロファイルを含む、生成することと、1つ又は複数のコンピュータにより、第1のマップ内のロボットの初期パスを決定することであって、初期パスは第1の複数のエッジの中からのエッジのサブセットを指定する、決定することと、1つ又は複数のコンピュータにより、物理的エリア内の可動物体により走行されるパスを表す第2のマップを示すデータを取得することであって、第2のマップは、(i)それぞれが第2のマップ内のノードを接続する第2の複数のエッジ及び(ii)第2の複数のエッジに含まれる各エッジの可動物体の行程容積プロファイルを含む、取得することと、第1の複数のエッジのロボットの行程容積プロファイル及び第2の複数のエッジの可動物体の行程容積プロファイルに基づいて、1つ又は複数のコンピュータにより、エッジのサブセットに含まれる1つ又は複数のエッジに関連する潜在的な障害物を検出することと、潜在的な障害物の検出に基づいて、第1のマップ内のロボットの調整済みパスを決定することであって、調整済みパスは、複数のエッジの中からのエッジの異なるサブセットを指定する、決定することとを含む。
【0009】
[0009] 1つ又は複数の実施は以下の任意選択的な特徴を含むことができる。例えば、幾つかの実施では、物理的エリア内の可動物体により走行されるパスは、第2のマップ内のエッジの第2のサブセットを指定する。さらに、エッジのサブセットに含まれる1つ又は複数のエッジに関連する潜在的な障害物を検出することは、初期パスにより指定されるエッジのサブセットに関連するロボットの行程容積プロファイルとエッジの第2のサブセットに関連する可動物体の行程容積プロファイルとを比較することと、初期パスにより指定されたエッジのサブセットに関連するロボットの行程容積プロファイルとエッジの第2のサブセットに関連する可動物体の行程容積プロファイルとの比較に基づいて、エッジの第1のサブセット内の1つ又は複数のエッジ及びエッジの第2のサブセット内の1つ又は複数のエッジが、物理的エリア内の重複領域に対応すると判断することと、エッジの第1のサブセット内の1つ又は複数のエッジ及びエッジの第2のサブセット内の1つ又は複数のエッジが、物理的エリア内の重複領域に対応するとの判断に基づいて、エッジの第1のサブセットに含まれる1つ又は複数のエッジに潜在的な障害物が関連すると判断することとを含む。
【0010】
[0010] 幾つかの実施では、第1のマップは第1の確率的ロードマップであり、第2のマップは第2の確率的ロードマップである。
【0011】
[0011] 幾つかの実施では、第1の複数のエッジのロボットの行程容積プロファイルに含まれる各行程容積プロファイルは、複数のエッジの中からの特定のエッジに関連して物理的空間内のロボットによる最大トラバース可能エリアを指定する。
【0012】
[0012] 幾つかの実施では、第1の複数のエッジのロボットの行程容積プロファイルに含まれる各行程容積プロファイルは、複数のエッジの中からの特定のエッジに関連して物理的空間内のロボットによる最大トラバース可能容積を表す1組のボクセルを指定する。
【0013】
[0013] 幾つかの実施では、可動物体は、物理的エリア内を走行する第2のロボットを含む。
【0014】
[0014] 幾つかの実施では、第1のマップ内のロボットの調整済みパスを決定することは、初期パスに対応する複数の代替パスを識別することを含む。そのような実施では、複数の代替パス内の各代替パスは、(i)初期パスの開始点を表す第1のエッジ及び(ii)初期パスの終了点を表す第2のエッジを含み、各代替パスは、第1のエッジと第2のエッジとの間の異なる組の中間エッジを含む、識別することと、複数の代替パスの中から特定の代替パスを調整済みパスとして選択することとを含む。
【0015】
[0015] 幾つかの実施では、複数の代替パスの中から特定の代替パスを調整済みパスとして選択することは、複数の代替パス内の各代替パスについて、特定の代替パスに沿って検出された障害物の確率を表すスコアを計算することと、代替パスに沿って検出された障害物の確率を表すスコアに基づいて、複数の代替パスの中からの特定の代替パスを調整済みパスとして選択することとを含む。
【0016】
[0016] 幾つかの実施では、方法は、検出された障害物に関連するエッジのサブセットに含まれるエッジの数が所定の閾値を満たすと判断することをさらに含む。さらに、第1のマップ内のロボットの調整済みパスを決定することは、検出された障害物に関連するエッジのサブセットに含まれるエッジの数が所定の閾値を満たすとの判断に基づいて、初期パスを無効化することと、第1のマップ内のロボットの新しい初期パスを再計算することとを含む。
【0017】
[0017] 幾つかの実施では、新しい初期パスは、複数のエッジの中からエッジの新しいサブセットを指定する。さらに、エッジの新しいサブセットは、エッジのサブセットに含まれていなかったエッジを含み、エッジのサブセットに含まれていなかったエッジの数は閾値を超える。
【0018】
[0018] 1つ又は複数の実施の詳細は、添付図及び以下の説明に記載される。他の潜在的な特徴及び利点も説明、図面、及び特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0019】
図1】[0019]行程容積プロファイルデータを使用して運動計画を実行することが可能なシステムの一例を示す。
図2A】[0020]確率的ロードマップ内のロボットの動的パス調整の一例を示す。
図2B】[0020]確率的ロードマップ内のロボットの動的パス調整の一例を示す。
図3】[0019]行程容積プロファイルデータの生成の一例を示す。
図4】[0020]2つのロボットの計画されたパス間の潜在的な衝突を検出する技法の一例を示す。
図5】[0021]ロボットに計画されたパスを動的に調整するプロセスの一例を示す。
図6】[0022]本明細書に記載される任意のコンピュータ実施方法に関連して説明される動作の実行に使用することができるコンピュータシステムの一例を示す。
【発明を実施するための形態】
【0020】
[0023] 図面中、同様の参照符号は全体を通して対応する部分を表す。
【0021】
[0024] 図1は、ロボットデバイス120の衝突検出及びパス調整に行程容積プロファイルデータを使用することができる一例の運動計画システム100を示す。システム100は、ロードマップ生成器112、パスプロセッサ114、衝突検出器116、及び出力プロセッサ118を含む。パスプロセッサ114はパス生成器114A及びパス調整器114Bを含む。
【0022】
[0025] 図1に示される例では、システム100は、2つのフェーズ-(1)構築フェーズ及び(2)クエリフェーズ-でロボットデバイス120の運動を計画する。構築フェーズ中、ロードマップ生成器112は、ロボットデバイス120が移動する空間の構成データ112Aを処理する。構成データ112Aは、空間で移動する他のロボット等の空間についての情報、静的物体若しくは移動物体等の空間における既知の物体、空間の物理的エリアを画定する境界、又は空間により表される物理的エリアのタイプを含むことができる。空間は、ロボットデバイス120が配備されてタスクを実行する異なるタイプの環境を表すことができる。例えば、空間は、工場内のエリア又は建築現場のエリア等の産業環境内であることができる。そのような例では、ロボットデバイス120は配備されて、特に空間の異なるエリア間での構成要素の輸送、組み立て手順での構成要素の操作等のタスクを実行することができる。他の例では、空間は、オフィスビルのエリア等の商業環境内又は個人所有のエリア等の住宅環境内であることができる。
【0023】
[0026] ロードマップ生成器112は、構成データ112Aに基づいてロボットデバイス120のマップ104を生成する。マップ104はマップであることができる。マップ104は、ロボットデバイス120が空間内で行う運動を近似し、ロボットデバイス120が空間内でとることができる1組の可能な運動パスを識別する。例えば、図2A図2Bに示されるように、マップ104は、空間内のロボットデバイス120の運動を特徴付ける1組のノード及びエッジを識別する。ロードマップ生成器112は、空間における点のランダムサンプルをとり、サンプルをテストして、サンプルが自由空間にあるか否か、すなわち、物体又は障害物により占有されていないかを判断し、自由空間にある場合、点を自由空間内の他の近傍点に接続することによりマップ104を生成することができる。ロードマップ生成器112はこのサンプリング技法を使用して、ロボットデバイス120の空間内の1組の可能な障害物なし運動パスを識別することができる。別の例として、ロードマップ生成器112は、構成データ112A内の既知の障害物がサンプリング技法で使用されて、自由空間における点を識別する障害物ベースの手法を使用することができる。
【0024】
[0027] マップ104が生成されると、ロードマップ生成器112は、マップ104に関連してキャッシュされる行程容積プロファイルデータ116Bを生成する。行程容積プロファイルデータ116Bは、マップ104で識別された各エッジ(図3に詳細に示される)の行程プロファイルを含む。各行程容積プロファイルは、マップ104からの特定のエッジに関連して物理的空間内のロボットデバイス120による最大トラバース可能移動を識別する。行程容積プロファイルは、パス調整の複雑性及び衝突検出及び/又はパス調整に関わる精度に応じてロボットデバイス120の移動を表すことができる。例えば、幾つかの場合、行程容積プロファイルは、物理的空間内のロボットデバイス120による最大トラバース可能エリアを表す1組の二次元行程容積画像として記憶される。他の場合、行程容積プロファイルは、物理的空間内のロボットデバイスによる最大トラバース可能容積を表す1組の三次元行程容積ボクセルとして記憶される。
【0025】
[0028] ロードマップ生成器112は、ロボットデバイス120がタスクを実行するクエリ102をシステム100が受信する前に、マップ104に関連して行程容積プロファイルデータ116Bをキャッシュする。この意味では、マップ104及び行程容積プロファイルデータ116Bは、運動計画のクエリフェーズ前に生成される。ロードマップ生成器112はマップ104及び行程容積プロファイルデータ116Bをキャッシュし、それにより、運動計画のクエリフェーズ中、衝突検出器116は、パス決定に関連する行程容積を計算する必要なく、衝突検出を実行することができる。さらに、幾つかの場合、行程容積プロファイルデータ116Bはマップ104の各エッジの行程容積プロファイルを指定し、それにより、システム100は行程容積プロファイルデータ116Bを使用して、マップ104の異なるエッジの行程容積プロファイルを再計算する必要なく、複数の可能なパスを評価する。このようにして、行程容積プロファイルデータ116Bのキャッシュは、運動計画のクエリ段階中に実行される衝突検出の複雑性及び/又は計算負荷を下げる。
【0026】
[0029] 幾つかの実施では、システム100はマップ104及びキャッシュされた行程容積プロファイルデータ116Bを使用して、空間内を移動する複数のロボットの運動コリオグラフィを改善することができる。例えば、複数のロボットは、重複する時間期間中、空間を移動し得、ロボットによるタスクの実行中、衝突の可能性を上げ得る。そのような実施では、構築フェーズ中、システム100は各マップ(例えばPRM)及び空間内を移動する各ロボットの関連する行程容積プロファイルデータを生成及びキャッシュする。各マップ及び行程容積プロファイルデータは、エリア内の対応するロボットの運動を一意に特徴付け、したがって、複数のロボットの運動を計画し、衝突を低減するのに使用することができる。
【0027】
[0030] 例えば、クエリフェーズ中、システム100は、2つのロボットのキャッシュされた行程容積プロファイルデータを使用して、ロボット間の衝突の可能性を評価することができる(図4に示される)。この例では、システムは、同じ時間間隔と一致する2つのロボットのマップ(例えばPRM)におけるエッジの行程容積プロファイルを比較して、衝突発生の可能性を表す行程容積の重複を識別する。上述したように、行程容積プロファイルは構築フェーズ中にキャッシュされるため、システム100は、2つのロボットの行程容積を計算する必要なく、クエリフェーズ中、これらの比較を実行することができる。
【0028】
[0031] 幾つかの実施では、システム100はキャッシュされた行程容積プロファイルデータを使用して、空間内の複数のロボットによる移動の時間同期を改善することができる。例えば、システム100は、時点TとT2との間の2つのロボットのパスを計画している場合、パスを評価して、同じ時間に対応するエッジを識別し、関連する行程容積プロファイルを比較して、衝突が生じるか否かを判断することができる。例えば、システム100は、同じ時間間隔に一致するエッジで2つのロボットの行程容積プロファイルが重複を示さない場合、2つのロボットが空間の異なるエリアを占有すると判断することができる。代替的には、システム100は、同じ時間間隔に一致するエッジの行程容積プロファイルが重複を示す場合、衝突が生じ得ると判断することができる。この状況では、システム100は検出された衝突を使用して、利用されるパス調整技法に応じてロボットの一方又は両方のパスを調整する。
【0029】
[0032] これよりクエリフェーズを参照すると、ロボットデバイス120及びエリアで作業することになる他のロボットデバイスの行程容積情報を有するマップ104が生成された後、システム100はマップ(例えばPRM)を使用して、衝突なしパスを生成する。システム100は、ロボットデバイス120がタスクを実行するクエリ102を受信する。クエリ102は、ロボット運動の開始点、ロボット運動の終了点、及び開始点から終了点までのロボットデバイス120の運動に関連する時間制約を指定する。別の例として、クエリ102を別のシステム又はデバイスから受信するのではなく、システム100は、開始点から終了点までのロボットデバイス120の所望の移動を他の方法で識別し得る。例えば、システム100は、実行するタスクについての情報にアクセスし、タスクを種々のロボットに割り当て、ロボットが走行する一連のパスとしてタスクを計画し得る。
【0030】
[0033] パス生成器114Aは、ロボットがクエリ102内で指定されるように開始点と終了点との間を走行する初期パス106Aを識別する。初期パス106Aは、開始点と終了点とを結ぶマップ104内の1組のノード及びエッジで構成される。多くの場合、初期パス106Aは、開始点と終了点との間の最短又は最もダイレクトなパスであり得る。パスの例を図2A及び図2Bに示す。
【0031】
[0034] 衝突検出器116は、初期パス106Aが静的物体又は移動物体と衝突することになるか(又は高すぎる衝突リスクを呈するか)否かを判断する。衝突検出器116は、初期パス106Aにおけるエッジの前に計算された行程容積情報を静的物体及び移動物体についての容積情報と比較することにより、この判断を効率的に行うことができる。特に、マップ(例えばPRM)及び異なるロボットの計画されたパスを使用して、ロボットの動的移動から生じ得る衝突を検出することは非常に容易である。例えば、行程容積は予め計算され、各ロボットのマップ(例えばPRM)に記憶されるため、異なるロボットの計画されたパスのエッジが競合するか否かを計算することは簡単である。例えば、2つのロボットがそれぞれ初期計画パスを有し、パスの行程容積が重複する場合、パスに沿った移動は同時に実行することができない。さらに、行程容積情報(例えば、個々の各エッジの)の微粒性により、衝突検出器116は、どのエッジが競合し(例えば、どのエッジが重複する行程容積を有し)、どのエッジが競合エッジを回避する効率的な再計画を可能にするかを効率的に識別できるようにする。
【0032】
[0035] 衝突検出器116は、初期パス106Aにおける衝突の可能性を判断する際に領域データ116Aを処理する。領域データ116Aは、例えば、マップ104又はロボットデバイス120も初期パス106Aに沿って移動すると予期される物理的領域内の他の可動物体の運動を表す他のマップ(例えばPRM)に関連する物理的領域における物体を識別する。障害物等の静的物体が関わる例では、衝突検出器116は、静的物体に関連するマップ104内の座標を識別し、初期パス106Aのノードの座標からの距離を比較する。別のロボットデバイス等の動的物体が関わる別の例では、衝突検出器116は動的物体のマップ(例えばPRM)にアクセスして、初期パス106Aにより指定された運動に相対する動的運動の運動を識別することができる。
【0033】
[0036] 衝突検出器116はまた、上述したように、構築フェーズにおいてマップ104に生成された、キャッシュされた行程容積プロファイルデータ116Bも処理する。行程容積プロファイルデータ116Bは、マップ104において指定された(図3に詳細に示される)各エッジの行程プロファイルを含む。各行程容積プロファイルは、マップ104からの特定のエッジに関連して物理的空間内のロボットデバイス120による最大トラバース可能移動を識別する。
【0034】
[0037] 衝突検出器116は衝突データ108をパス生成器114Aに提供する。衝突データ108は、(1)ロボットデバイス120が初期パス106Aに沿って走行する際、衝突が生じる可能性が高いか否かを識別し、可能性が高い場合、(2)予測された衝突に関連するマップ104のエッジを識別する。例えば、衝突データ108は、ロボットデバイス120が物体と衝突すると予測される初期パス106Aに含まれる特定のエッジを識別することができる。
【0035】
[0038] パス調整器114Bは、ロボットデバイス120のマップ104及び衝突データ108を処理して、衝突の可能性を回避又は下げる1組の代替パス113を識別する。例えば、図2Bに示されるように、1組の代替パス113に含まれる各パスは、クエリ102により指定される開始点及び終了点を含むが、衝突が生じる可能性が高いと衝突データ108が示すマップ104の領域を回避する異なる組のノード又はエッジを指定する。図1に示される例では、パス調整器114Bは、クエリ102に指定される開始点及び終了点からの最短衝突なしパスを表す1組の代替パス113の中からのパスを調整済みパス106Bとして選択し、調整済みパス106Bを出力プロセッサ118に提供する。
【0036】
[0039] 出力プロセッサ118は、調整済みパス106Bのパス情報を有する命令122を生成し、命令122をロボットデバイス120に提供する。命令122は、パスに含まれたノードの順序付きリストを指定することができ、ロボットデバイス120はこれを使用してパスを実行する。幾つかの場合、ロボットデバイス120は、命令122を出力プロセッサ118から受信した後及びエリアでの関連タスクを実行する他の命令を蓄積する間、命令122を記憶する。例えば、ロボットデバイス120は、一連の命令内の命令122を受信して、後の時点でタスクのバッチを実行することができる。この例では、ロボットデバイス120は、全ての命令が受信された後、クエリ102により指定されたタスクを命令122に従って実行する。他の幾つかの場合、ロボットデバイス120は、命令122を受信すると、初期パス106Aの代わりに調整済みパス106Bに沿った運動に従うことによりクエリ102により指定されたタスクを実行する。これは、タスクを実行している間、ロボットデバイス120が衝突を受ける確率が下がることを保証する。
【0037】
[0040] 幾つかの実施では、上述したように、パス調整器114Bは初期パス106Aを無効化し、初期パス206Aの一部を調整する代わりに全体的に新しいパスを生成して、調整済みパス106Bを生成することができる。そのような実施では、パスプロセッサ114は、初期パス106Aのエッジの数が潜在的な衝突により影響を受けると識別し、影響を受けるエッジの数が所定の閾値、例えば初期パス106Aの全てのエッジの中の影響を受けるエッジが50%を超えることを満たすと判断することができる。パス調整器114Bは、判断に基づいて初期パス106Aを無効化し、マップ104内のロボットデバイス120の新しいパスを再計算する。例えば、パス調整器114Bは、クエリ102の開始点と終了点との間に、新しいパス及び初期パスが中間ノードの大部分を共有しないような全体的に新しいパス、例えば、図2Bに示されるようなパス206A及び206Cを識別することができる。
【0038】
[0041] パス調整器114Bが新しいパスを再計算する幾つかの場合、パス調整器114Bは新しいパスを評価して、新しいパスが実際に初期パス106Aと異なるパスを表すか否かを判断することができる。例えば、パス調整器114Bは、初期パス106Aにより指定されていなかった、新しいパスにより指定されたエッジを識別し、新しいエッジの数を閾値と比較することができる。新しいエッジの数が閾値を超える、例えば、新しいパスのエッジの中からの新しいエッジが50%を超える場合、パス調整器114Bは、新たに計算されたパスが実際に、初期パス106Aと異なる新しく別個のパスを表すと判断する。
【0039】
[0042] 図2A図2Bは、PRM内のロボットの動的パス調整の一例を示す。示される例では、マップ201は、物理的エリア内のロボットデバイス、例えばロボットデバイス120の潜在的な移動に関連するノードを示す。マップ201は確率的ロードマップ(PRM)であることができる。マップ201はまた、マップ201内の2つ以上のノードを接続するエッジも示す。マップ201はまた、物理的エリア内のロボットデバイスの移動を制限する障害物202A及び202Bも示す。
【0040】
[0043] 例は、システム100が開始点204Aと終了点204Bとの間を走行すると予期されるロボットデバイスに決定したマップ201内のパス206を示す。この例では、パス206は、9つのノード(開始点及び終了点を表す2つのノードを含む)及びノードをパス206に沿って結ぶ8つのエッジにより定義される。図2Aに示されるように、パス206は、マップ201内のノードの配置、並びに障害物202A及び202Bの存在に基づいて識別される。
【0041】
[0044] これより図2Bを参照すると、衝突検出がパス206に対して実行されて、マップ201内のパス206に関連する任意の潜在的な衝突を識別する。例は、潜在的な衝突が識別され、パス206に沿って走行するロボットデバイスが別の物体と衝突する可能性が高い物理的エリアを表す衝突領域208により表されていることを示す。衝突領域208は、マップ(例えばPRM)におけるエッジの行程容積と1つ又は複数の障害物の容積、例えば静的障害物の静的容積又は移動する障害物のパスに沿った行程容積との重複又は他の競合の領域を表す。
【0042】
[0045] 図1を参照して上述したように、システム100は、対応するエッジの行程容積プロファイルが可動物体又は空間を移動する別のロボットの行程容積プロファイルの何れかと重複するとの判断に基づいて、潜在的な衝突及び衝突領域208を識別する。例えば、衝突領域208を定義するエリアは、空間を移動する2つのロボットのマップ(例えばPRM)における対応するエッジの行程容積プロファイル間の重複量を表すことができる。
【0043】
[0046] 次に、システム100は、衝突領域208に基づいてパス206の影響を受けるノード及び/又はエッジを識別する。図2Bに示される例では、影響を受けるノードは衝突領域208内に入るパス206のノードであり、影響を受けるエッジは、影響を受けるノードと接続されるパス206のエッジである。他の例では、衝突領域208がいかなるノードも含まない場合、システム100は、衝突領域208と重複するパス206のエッジを表す、パス206の影響を受けるエッジを識別する。幾つかの他の例では、影響を受けるノードは、衝突領域208の境界から閾値距離内、例えば、境界から1メートル以内にあるノードであることもできる。影響を受けるノードに関連するエッジも識別されて、衝突領域208を回避するためにパス206に対して行う調整を決定する。図2Bに示されるように、2つのノード及び7つの関連するエッジは、衝突領域208により影響を受けるものとして識別される。
【0044】
[0047] 図2Bに示される例では、システム100は、マップ201内のパス206の代替パスを識別し、表212に示されるように、パス206Bが最良の代替衝突なしパスを表すと判断する。この例では、システム100は、パス206Bが、開始点204Aから終了点204Bまでの最短パスであるため、代替パス206B及び206Cに対する最良パスであると判断する。パス206A~Cは、パス206への代替パス、すなわち、物理的エリア内の開始点と終了点との間の異なるパスを表す。図2Bに示されるように、システム100は、パス206A~Cが衝突領域208を回避し、それにより、ロボットデバイスが特定のパスに沿って開始点と終了点との間を走行する際に起こり得る衝突の可能性を下げる運動を指定するため、パス206A~Cを識別する。
【0045】
[0048] システム100はパス206A~Cのそれぞれを評価して、パス206に対する最も適した代替として選択するパスを決定する。図2Bに示される例では、パス評価の結果は表212内で指定されるパススコアにより表される。この例では、パススコアは各パスの相対査定を表す。例えば、パススコアが高いほど、対応するパスが他の代替パスと比較してパス206にとってより強力な代替パスであることを示すことができる。
【0046】
[0049] 図2Bに示される例では、パス206Bは、最高パススコア「0.87」を有するものとして識別され、これは次に、パス206への代替としてパス206Bを選択するのに使用される。この例では、パス206Bは、衝突領域208を回避した開始点と終了点との間の最短代替パスであるため、最高パススコアを有すると判断される。他の場合、パススコアを計算し、複数の代替パスの中から特定の代替パスを選択するのに他のタイプの評価基準を使用することができる。例として、そのような評価基準は、特にパスに含まれるエッジの数、パスに沿った走行に関連する運動複雑性、又は衝突領域へのエッジ若しくはノードの近接性を含むことができる。
【0047】
[0050] 図2Bは、3つの代替パス206A~Cを識別するシステム100を示すが、幾つかの実施では、システム100は単に、複数の可能な代替を識別せずに、元のパス206への次善代替を識別する。そのような実施では、システム100は、衝突領域208により影響される元のパス206の一部を識別し、新しい代替パスを再計算せずにパスのその部分を調整する。例えば、システム100は、衝突領域208と相互作用すると予測される元のパス205の部分を調整し、パスを再ルーティングしてパス206Bを形成する。この例では、システム100は、代替パス206A及び206Cを計算又は識別せずに代替パス206Bを識別して選択して、効率を改善し、パス調整に関連する計算負荷を下げる。
【0048】
[0051] 図3は、行程容積プロファイルデータ116Bを生成する一例を示す。上述したように、ロードマップ生成器112は、ロボットデバイスがタスクを実行するクエリを受信する前の、運動計画プロセスの構築フェーズ中、行程容積プロファイルデータ116Bを生成する。幾つかの場合、ロードマップ生成器112は、ロボットデバイスが走行し得るノード及びエッジが物理的エリアについて識別される際、マップ(例えばPRM)生成プロセス中、行程容積プロファイルデータ116Bを生成する。他の場合、行程容積プロファイルデータ116Bは、マップ(例えばPRM)生成プロセス後であるが、図1を参照して上述したパス調整技法前に生成される。例えば、マップ(例えばPRM)が生成されると、ロードマップ生成器112はロボットデバイスの運動属性を表すデータを受信することができ、このデータは次にマップにマッピング又は射影されて、後述するように、マップの各エッジに関連する予測された運動の行程容積プロファイルを識別する。
【0049】
[0052] 図3に示される例では、ロードマップ生成器112はベースラインマップ302を入力として受信する。マップ302は確率的ロードマップであることができる。ロードマップ生成器112は、マップ302内のノード、例えば「A」、「B」、「C」、及び「D」、並びに識別されたのノードに関連するエッジ、例えば、「AB」、「AC」、「CB」、「CD」、「BD」を識別する。
【0050】
[0053] ロードマップ生成器112は、マップ302内の識別された各エッジの行程容積プロファイルを決定する。例では、ロードマップ生成器112は、エッジ「AB」の行程容積プロファイル306、エッジ「AC」の行程容積プロファイル308、エッジ「BD」の行程容積プロファイル312、エッジ「CB」の行程容積プロファイル314、及びエッジ「CD」の行程容積プロファイル316を識別する。ロードマップ生成器112は、空間内のロボットの運動に影響する種々の要因を考慮に入れることにより行程容積プロファイル306、308、312、314、316を生成する。例えば、ロードマップ生成器112は、ロボットデバイスのサイズ及び形状、並びにロボットが空間を走行する際のロボットの異なる構成(姿勢)を考慮に入れ得る。
【0051】
[0054] ロードマップ生成器112は、対応するエッジに沿ってロボットの運動を射影することにより行程容積プロファイル306、308、312、314、316のそれぞれを生成する。例として、ロードマップ生成器112は、各エッジに沿ってロボットの三次元運動プロファイルを決定し、マップ302においてエッジに沿って移動する間のそのプロファイルの範囲を計算し、及び/又は移動するロボットプロファイルが通過する全てのボクセルを特定することができる。
【0052】
[0055] 生成されると、行程容積プロファイル306、308、312、314、316は、計算された行程プロファイルのタイプに基づいて異なるデータフォーマットに記憶することができる。幾つかの実施では、行程容積プロファイルは、特定のエッジに沿ったロボットの三次元運動プロファイルを表す1組のボクセルとして記憶される。幾つかの他の実施では、行程容積プロファイルは、ロボットにより潜在的に占有されると見なされる空間の全体垂直エリアを有する簡易化された二次元位置として記憶される。図2Dに示されている行程容積プロファイルの二次元図は、明確さを目的とするが、システム100は、実際の三次元位置データを表す行程容積プロファイルを記憶する。
【0053】
[0056] 特定のエッジのエッジ固有行程容積プロファイルは、ロボットデバイスがその特定のエッジに沿って走行している間に通過する総容積を表すことができる。例えば、システムは、ロボットデバイスの3Dプロファイルを特定し、次に、その特定のエッジに沿って移動する際、任意の点で3Dプロファイルに接するか、又は3Dプロファイル内に包含されるボクセルの和として行程容積を特定することができる。行程容積は、特に凸生成器(convex generator)、多面体近似、軌道に沿った運動サンプリング、次元変換行列を含め、種々の運動評価技法を使用して識別することができる。
【0054】
[0057] ロードマップ生成器112は、各エッジを対応する行程容積プロファイルにマッピングする表318を生成する。表318はまた、ロボットデバイスがエッジに沿って走行する推定持続時間等の各エッジに沿った運動に関連するタイミング情報も含む。他の例として、表318はまた、推定持続時間の予測に使用されるデータ、そのようなロボットの仕様、例えばロボット姿勢関節構成、ロボットにより使用される運動のタイプ、エッジ距離に関連する測定値、速度推定、又は空間情報、例えば表面タイプ、摩擦係数等を調達することができる。表318は、行程容積プロファイルデータ116Bに記憶され、例えば、図1を参照して上述したように、衝突検出及びパス調整プロセス中にそれぞれ衝突検出器116及びパス調整器114Bによりアクセスすることができる。
【0055】
[0058] 図4は、2つのロボットの計画されたパス間の潜在的な衝突を検出する技法の一例を示す。この例では、衝突検出器116は、重複する時間期間中、同じ物理的エリアを走行する2つのロボットデバイスのマップ(例えばPRM)を評価する。衝突検出器116は、図1を参照して上述した評価に基づいてロボットデバイス間で衝突が発生する可能性が高いか否かを判断する。
【0056】
[0059] 図4に示される例では、衝突検出器116は、ロボットデバイス120Aのマップ402A(例えばPRM)、行程容積プロファイルデータ404A、及びパス406A、並びにロボットデバイス120Bのマップ402B(例えばPRM)、行程容積プロファイルデータ404B、及びパス406Bを受信する。この例では、衝突検出器116は衝突検出を実行して、ロボットデバイス120A及び120Bがそれぞれのパス406A及び406Bに沿って走行する際、ロボットデバイス120Aと120Bとの間で衝突が生じる可能性が高いか否かを判断する。
【0057】
[0060] 図4に示されるように、衝突検出器116は、エッジ単位で、すなわち、重複する時間枠に対応するパス406A及び406Bのエッジを比較することにより衝突検出を実行する。例えば、ステップ412において、衝突検出器116はパス406Aからのエッジ1Aをパス406Bからのエッジ1Bと比較して、時点TとTとの間のロボットデバイス120A及び120Bの運動を比較する。この場合、衝突検出器116は、エッジ1A及び1Bの行程容積プロファイル間に重複がないため、衝突が発生しないと判断する。
【0058】
[0061] ステップ414において、衝突検出器116はパス406Aからのエッジ2Aをパス406Bからのエッジ1Bと比較して、時点TとTとの間のロボットデバイス120A及び120Bの運動を比較する。この場合、パス406A及び406Bに関連するタイミングデータにより、ロボットデバイス120Bがエッジ1Bを走行する時間が、ロボットデバイス120Aがエッジ1A及び2Aの両方を走行する時間と概ね同じであることが示されるため、エッジ2Aはエッジ1Bと比較される。これに関して、衝突検出器116は、衝突検出のために比較すべきパス間の対応するエッジを特定するに当たり、パスの走行に関連する速度を考慮することができる。
【0059】
[0062] 図4に示されるように、ステップ414において、衝突検出器116は、エッジ2A及び1Bの行程容積プロファイル間に重複があるため、衝突が生じる可能性が高いと判断する。衝突検出器116は、パス調整がパス406Aに対して必要である可能性が高いと判断し、パス406A内のエッジ2Aに関するパス調整が行われるまで、ステップ416における更なるエッジ比較を停止する。次に、衝突検出器116は、パス調整指示をパスプロセッサ114に提供し、パスプロセッサ114は、図2A図2Bを参照して上述したようにパス調整を実行する。
【0060】
[0063] 幾つかの実施では、衝突検出器116は、パスが調整された後、図4に示される衝突検出手順を繰り返す。例えば、衝突検出器116は、パス406Aがステップ414において識別された起こり得る衝突を回避するように調整された後、エッジを再評価する信号を生成することができる。そのような実施では、衝突検出器116は、調整されたパス406Aとパス406Bとのエッジ毎の比較を再帰的に実行して、調整されたパス406Aが起こり得る衝突を含まないことを確認する。例えば、衝突検出器116は、時点T及びT中、調整されたエッジを用いてステップ414を繰り返して、衝突が発生する可能性がもはやないことを確認することができる。パス調整に複数の代替が利用可能な幾つかの場合、衝突検出器116は比較技法を各代替に対して実行して、代替パスの何れかが衝突を含む可能性がある場合、どの代替パスが衝突を含む可能性があるかを特定し得る。
【0061】
[0064] パスプロセッサ114は、多種多様な技法を使用して、2つ以上のマップ(例えばPRM)により指定されたパスの比較に基づいてパスを調整することができる。幾つかの場合、パスプロセッサ114は、あるマップにより指定される1つのパスのみを別のマップに対して調整する。図4に示される例では、パスプロセッサ114は、ロボットデバイス120Aと120Bとの間の衝突の可能性を回避するに当たり、パス406Aは調整するが、パス406Bはそのまま残すことができる。他の場合、パスプロセッサ114は、検出された衝突を回避するのに十分なだけ複数のパスを調整することができる。図4に示される例では、パスプロセッサ114は、衝突を回避するのに1つのみのパスを調整するために必要であり得るよりも小さな量でパス406A及び406Bの両方を調整し得る。
【0062】
[0065] 幾つかの実施では、パスプロセッサ114は、どのパスを調整するか及び/又はパスを調整すべき程度を決定できるようにする優先度方式を利用し得る。優先度方式は、衝突回避中、優先度の高いパスが調整されないことを保証するのに使用することができる。例えば、ロボットデバイス120Aがロボットデバイス120Bよりも優先度が高い物体として識別される場合、パス調整中、パスプロセッサ114は、優先度が高いことに起因してパス406Aを変更しない状態に保ち、ステップ414において検出された潜在的な衝突が回避されるようにパス406Bのみを調整し得る。
【0063】
[0066] 図5は、ロボットに計画されたパスを動的に調整するプロセス500の一例を示す。手短に言えば、プロセス500は、物理的エリア内のロボットにより走行される可能なパスを表す第1の確率的ロードマップを生成する動作(510)と、第1の確率的ロードマップ内のロボットの初期パスを決定する動作(520)と、物理的エリア内の可動物体により走行されるパスを表す第2の確率的ロードマップを示すデータを取得する動作(530)と、ロボットの初期パスのエッジに関連する潜在的な衝突を検出する動作(540)と、確率的ロードマップ内のロボットの調整済みパスを決定する動作(550)とを含むことができる。
【0064】
[0067] 一般に、プロセス500についてシステム100を参照して説明するが、他のタイプの運動計画システムもプロセス500の動作を実行するように構成することができる。例えば、幾つかの実施では、プロセス500の動作は、確率的運動計画を使用して、2つ以上のマップ(例えばPRM)の個々のエッジの行程容積プロファイルを比較するシステムにより実行される。さらに、プロセス500の動作は、システム100の異なる構成要素により実行されてもよく、1つ又は複数の計算デバイスで実施することができる。システム100がリモートサーバシステムで実施される他の実施では、プロセス500の動作はリモートサーバシステムにより実行することができる。
【0065】
[0068] より詳細には、プロセス500は、物理的エリア内のロボットにより走行される可能なパスを表す第1の確率的ロードマップを生成する動作(510)を含む。例えば、ロードマップ生成器112は、物理的エリア内のロボットデバイス120により走行される可能なパスを表すマップ104を生成する。マップ104は、マップ104のノードをそれぞれ接続する1組のエッジを指定することができる。マップ104には、各エッジの行程容積プロファイルを関連付けることができる。例えば、図3に示される例では、エッジ「AB」、「AC」、「CB」、「CD」、及び「BD」にはそれぞれ行程容積プロファイル306、308、314、316、及び312が関連付けられる。
【0066】
[0069] 上述したように、行程容積プロファイルデータ116Bは、エッジ固有行程容積プロファイルを含み、PRM内の個々のエッジに関連して物理的空間におけるロボットデバイス120による最大トラバース可能移動を表す。幾つかの場合、行程容積プロファイルは、物理的空間内のロボットデバイス120による最大トラバース可能エリアを表す1組の二次元行程容積画像として記憶される。他の場合、行程容積プロファイルは、物理的空間内のロボットデバイスによる最大トラバース可能容積を表す1組の三次元行程容積ボクセルとして記憶される。運動計画に求められる複雑性に応じて、システム100は、行程容積プロファイルを表す二次元画像を使用して衝突検出を実行することができ(図4に示されるように)、又は代替的には、行程容積プロファイルを表す三次元ボクセルを使用して、より精密であるが計算的に要求が厳しい衝突検出を実行することができる。
【0067】
[0070] プロセス500は、第1のマップ(例えばPRM)内のロボットの初期パスを決定する動作(520)を含む。例えば、パス生成器114Aは、マップ104内のロボットデバイス120の初期パス106Aを決定することができる。初期パス106Aは、クエリ102において指定された開始点から終了点までのロボットデバイス120の運動を表すマップ104内のエッジの中からのエッジのサブセットを指定することができる。例えば、図2Aに示される例では、パス206は、開始点204Aから終了点204Bまでの8つの接続されたエッジを指定する。
【0068】
[0071] プロセス500は、物理的エリア内の可動物体が走行するパスを表す第2のマップ(例えばPRM)を示すデータを取得する動作(530)を含む。例えば、衝突検出器116は、物理的エリア内の可動物体が走行するパスを表す第2のマップを示す領域データ116Aを取得することができる。第2のマップは、第2のマップ内のノードを接続する第2の組のエッジと、第2の組のエッジに含まれる各エッジの可動物体の行程容積プロファイルとを含むことができる。可動物体は、ロボットデバイス120がある物理的エリアを走行するように計画された時間期間中、同じ物理的エリアを走行すると予期される別のロボットデバイスを表すことができる。例えば、図4に示される例では、衝突検出器116は、ロボットデバイス120Aのマップ402A及び行程容積プロファイルデータ404Aに関連してロボットデバイス120Bのマップ402B及び行程容積プロファイルデータ404Bを評価する。
【0069】
[0072] プロセス500は、ロボットの初期パスのエッジに関連する潜在的な衝突を検出する動作(540)を含む。例えば、衝突検出器116は、初期パス206Aの一部で検出された潜在的な衝突を示す衝突データ108を生成することができる。潜在的な衝突は、ロボットデバイス120及び可動物体の行程容積プロファイルデータを比較し、重複を識別することに基づいて検出することができる。図4を参照して上述したように、重複は、ロボットデバイス120及び可動物体が概ね同じ時点で物理的エリアの同じ領域にトラバースする可能性を示す。図4に示される例では、衝突検出器116は、マップ402A内のエッジ2Aがマップ402B内のエッジ1Bの行程容積プロファイルと重複する行程容積プロファイルを有するとの判断に基づいて、ステップ414において潜在的な衝突を検出する。
【0070】
[0073] プロセス500は、マップ内のロボットの調整済みパスを決定する動作(550)を含む。例えば、パス調整器114Bは、マップ104内のロボットデバイス120の調整済みパス106Bを決定する。調整済みパス106Bは、ステップ540において検出された潜在的な衝突を回避する、初期パス106Aと異なるエッジのサブセットを指定することができる。例えば、図2A図2Bに示される例では、調整済みパス206Bは、衝突領域208により影響を受けるものとして識別された初期パス206Aのエッジを含まない。この例では、調整済みパス206Bはまた、開始点204Aを中間ノードに接続するエッジ及び中間ノードを終了点204Bに接続するエッジ等の特定のエッジを共有する。これに関して、パス調整器115Bは、全体的に新しいパスを再計算する必要なく、初期パス206Aの一部を調整する。
【0071】
[0074] 幾つかの実施では、パス調整器114Bは、1組の複数の代替パス113の中から代替パスを選択することに基づいて調整済みパス106Bを決定する。例えば、図2Bに示される例では、調整済みパスは、パス206への代替パスとして識別された3つの代替パス206A、206B、及び206Cの中から調整済みパス206Bを選択することにより決定される。この例では、パス206Bは、パス206Bが3つの代替パスの中からの最短パスであることを示すパススコアに基づいて調整済みパスとして選択される。図2Bに示されるように、パス206A~206Cのそれぞれは、パス206と同じ開始点204A及び終了点204Bを共有するが、潜在的な衝突を回避する代替トラバースパスを表す異なる組の中間ノード及びエッジを含む。
【0072】
[0075] 幾つかの実施では、パス調整器114Bは、上述したように初期パス206Aの一部を調整して調整済みパス106Bを生成する代わりに、初期パス106Aを無効化し、全体的に新しいパスを生成することができる。そのような実施では、パスプロセッサ114は、初期パス106Aのエッジの数を識別し、潜在的な衝突による影響を受け、影響を受けるエッジの数が所定の閾値を満たす、例えば、初期パス106Aの全てのエッジの中の影響を受けるエッジが50%を超えると判断することができる。パス調整器114Bは、その判断に基づいて初期パス106Aを無効化し、マップ104内のロボットデバイス120の新しいパスを再計算する。例えば、パス調整器114Bは、新しいパス及び初期パスが中間ノードの大部分、例えば図2Bに示されるパス206A及び206Cを共有しないような、クエリ102の開始点と終了点との間の全体的に新しいパスを識別することができる。
【0073】
[0076] パス調整器114Bが新しいパスを再計算する幾つかの場合、パス調整器114Bは新しいパスを評価して、実際に初期パス106Aと異なるパスを表しているか否かを判断することができる。例えば、パス調整器114Bは、初期パス106Aにより指定されていなかった新しいパスにより指定されているエッジを識別し、新しいエッジの数を閾値と比較することができる。新しいエッジの数が閾値を超える、例えば、新しいパスのエッジの中からの新しいエッジのが50%を超える場合、パス調整器114Bは、新たに計算されたパスが実際に、初期パス106Aと異なる新しい別個のパスを表していると判断する。
【0074】
[0077] 図6はシステム600の概略図である。システム600は、幾つかの実施により上述した任意のコンピュータ実施方法に関連して説明した動作を実行するのに使用することができる。幾つかの実施では、本明細書に記載される計算システム及びデバイス、並びに機能動作は、デジタル電子回路、有形実施のコンピュータソフトウェア若しくはファームウェア、本明細書に開示される構造(例えばシステム600)及びそれらの構造的均等物を含むコンピュータハードウェア、又はそれらの1つ若しくは複数の組合せで実施することができる。システム600は、ラップトップ、デスクトップ、ワークステーション、個人情報端末、サーバ、ブレードサーバ、メインフレーム、及びベースユニットに設置される車両又はモジュール車両のポッドユニットを含む他の適切なコンピュータ等の種々の形態のデジタルコンピュータを含むことが意図される。システム600はまた、個人情報端末、セルラ電話、スマートフォン、及び他の同様の計算デバイス等のモバイルデバイスを含むこともできる。さらに、システムは、ユニバーサルシリアルバス(USB)フラッシュドライブ等のポータブル記憶媒体を含むことができる。例えば、USBフラッシュドライブはオペレーティングシステム及び他のアプリケーションを記憶し得る。USBフラッシュドライブは、別の計算デバイスのUSBポートに挿入することができる無線送信機又はUSBコネクタ等の入出力構成要素を含むことができる。
【0075】
[0078] システム600は、プロセッサ610、メモリ620、記憶装置630、及び入出力デバイス640を含む。プロセッサ610、メモリ620、記憶装置630、及び入出力デバイス640のそれぞれは、システムバス650を使用して相互接続される。プロセッサ610は、システム600内で実行される命令を処理することが可能である。プロセッサは、任意の数のアーキテクチャを使用して設計し得る。例えば、プロセッサ610は、CISC(複雑命令セットコンピュータ)プロセッサ、RISC(縮小命令セットコンピュータ)プロセッサ、又はMISC(最小命令セットコンピュータ)プロセッサであり得る。
【0076】
[0079] 一実施では、プロセッサ610はシングルスレッドプロセッサである。別の実施では、プロセッサ610はマルチスレッドプロセッサである。プロセッサ610は、メモリ620又は記憶装置630に記憶された命令を処理して、ユーザインターフェースのグラフィカル情報を入出力デバイス640に表示することが可能である。
【0077】
[0080] メモリ620は情報をシステム600内に記憶する。一実施では、メモリ620はコンピュータ可読媒体である。一実施では、メモリ620は揮発性メモリユニットである。別の実施では、メモリ620は不揮発性メモリユニットである。
【0078】
[0081] 記憶装置630は、大容量記憶装置をシステム600に提供することが可能である。一実施では、記憶装置630はコンピュータ可読媒体である。種々の異なる実施では、記憶装置630は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、又はテープデバイスであり得る。
【0079】
[0082] 入出力デバイス640は、入出力動作をシステム600に提供する。一実施では、入出力デバイス640はキーボード及び/又はポインティングデバイスを含む。別の実施では、入出力デバイス640は、グラフィカルユーザインターフェースを表示する表示ユニットを含む。
【0080】
[0083] 記載された特徴は、デジタル電子回路、又はコンピュータハードウェア、ファームウェア、ソフトウェア、又はそれらの組合せで実施することができる。装置は、情報キャリア、例えばプログラマブルプロセッサにより実行される機械可読記憶装置において有形に実施されるコンピュータプログラム製品で実施することができ、方法ステップは、命令プログラムを実行して、入力データに対して作用して出力を生成することにより記載された実施の機能を実行するプログラマブルプロセッサにより実行することができる。記載された特徴は有利なことには、データ記憶システムと結合されて、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスとデータ及び命令をやりとりする少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムで実行可能な1つ又は複数のコンピュータプログラムで実施することができる。コンピュータプログラムは、コンピュータで直接又は間接的に使用されて、特定の活動を実行し、又は特定の結果を生じさせることができる命令セットである。コンピュータプログラムは、コンパイル型又はインタープリタ型言語を含め、任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラム又はモジュール、コンポーネント、サブルーチン、若しくは計算環境での使用に適した他のユニットを含め、任意の形態でデプロイすることができる。
【0081】
[0084] 命令プログラムの実行に適したプロセッサには、例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方、並びに単独プロセッサ又は任意の種類のコンピュータの複数のプロセッサの1つがある。一般に、プロセッサは、読み取り専用メモリ、又はランダムアクセスメモリ、又は両方から命令及びデータを受信する。コンピュータの基本要素は、命令を実行するプロセッサ、並びに命令及びデータを記憶する1つ又は複数のメモリである。一般に、コンピュータは、データファイルを記憶する1つ又は複数の大容量記憶装置も含み、又は大容量記憶装置と通信するよう動作可能に結合され、そのようなデバイスは、内部ハードディスク及びリムーバブルディスク等の磁気ディスク、磁気光学ディスク、及び光ディスクを含む。コンピュータプログラム命令及びデータを有形に実施するのに適した記憶装置は、例としてEPROM、EEPROM、及びフラッシュメモリデバイス等の半導体メモリデバイス、内部ハードディスク及びリムーバブルディスク等の磁気ディスク、磁気光学ディスク、並びにCD-ROM及びDVD-ROMディスクを含め、全ての形態の不揮発性メモリを含む。プロセッサ及びメモリは、ASIC(特定用途向け集積回路)により補足することができ、又はASICに組み込まれることができる。
【0082】
[0085] ユーザとの対話を提供するために、特徴は、情報をユーザに表示するCRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ等の表示装置、並びにユーザが入力をコンピュータに提供できるようにするキーボード及びマウス又はトラックボール等のポインティングデバイスを有するコンピュータで実施することができる。さらに、そのような活動は、タッチスクリーンフラットパネルディスプレイ及び他の適切な機構を介して実施することができる。
【0083】
[0086] 特徴は、データサーバ等のバックエンド構成要素を含むコンピュータシステム、又はアプリケーションサーバ若しくはインターネットサーバ等のミドルウェア構成要素を含むコンピュータシステム、又はグラフィカルユーザインターフェース若しくはインターネットブラウザを有するクライアントコンピュータ等のフロントエンド構成要素を含むコンピュータシステム、又はそれらの任意の組合せを含むコンピュータシステムで実施することができる。システムの構成要素は、通信ネットワーク等の任意の形態又は媒体のデジタルデータ通信により接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、ピアツーピアネットワーク(アドホック又は静的部材を有する)、グリッド計算基盤、及びインターネットがある。
【0084】
[0087] コンピュータシステムはクライアント及びサーバを含むことができる。クライアント及びサーバは一般に、互いからリモートであり、通常、記載されたようなネットワークを通して対話する。クライアント及びサーバの関係は、各コンピュータで実行され、クライアント-サーバ関係を互いに対して有するコンピュータプログラムにより生じる。
【0085】
[0088] 本明細書は多くの具体的な実施の詳細を含むが、これらは、いかなる発明の範囲又は特許請求の範囲に記載され得るものの範囲への限定としても解釈されるべきではなく、むしろ特定の発明の特定の実施に固有の特徴の説明として解釈されるべきである。別個の実施に関連して本明細書に記載された特定の特徴は、1つの実施で組合せて実施することもできる。逆に、1つの実施に関連して説明された種々の特徴は、複数の実施で別個に又は任意の適した下位組合せで実施することもできる。さらに、特徴は特定の組合せにおいて作用するものとして上述され得、さらにはそのように最初に特許請求の範囲に記載され得るが、特許請求の範囲に記載される組合せからの1つ又は複数の特徴は、幾つかの場合、その組合せから削除することができ、特許請求の範囲に記載される組合せは、下位組合せ又は下位組合せの変形に向けられ得る。
【0086】
[0089] 同様に、動作は特定の順序で図面に示されているが、これは、望ましい結果を達成するために、そのような動作を示されている特定の順序若しくは順次的順序で実行すること又は示されている全ての動作を実行することを求めるものとして理解されるべきではない。特定の状況では、マルチタスク及び並列処理が有利であり得る。さらに、上述した実施での種々のシステム構成要素の分離は、全ての実施でそのような分離が求められるものとして理解されるべきではなく、記載のプログラム構成要素及びシステムは一般に1つのソフトウェア製品に一緒に統合することができ、又は複数のソフトウェア製品にパッケージすることができることを理解されたい。
【0087】
[0090] 幾つかの実施形態について説明した。それにも関わらず、本発明の趣旨及び範囲から逸脱せずに種々の変更を行うことができることが理解される。さらに、図に示される論理フローは、望ましい結果の達成に示される特定の順序又は順次的順司を必要としない。さらに、他のステップを提供することもでき、又は記載されたフローからステップをなくすこともでき、他の構成要素を記載のシステムに追加又はなくすこともできる。したがって、他の実施形態も以下の特許請求の範囲内にある。
図1
図2A
図2B
図3
図4
図5
図6
【国際調査報告】