(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-08
(45)【発行日】2022-04-18
(54)【発明の名称】1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作
(51)【国際特許分類】
B25J 9/00 20060101AFI20220411BHJP
【FI】
B25J9/00 Z
(21)【出願番号】P 2021171704
(22)【出願日】2021-10-20
(62)【分割の表示】P 2020564782の分割
【原出願日】2019-02-05
【審査請求日】2021-11-02
(32)【優先日】2018-02-06
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】520296244
【氏名又は名称】リアルタイム ロボティクス, インコーポレーテッド
【氏名又は名称原語表記】REALTIME ROBOTICS, INC.
【住所又は居所原語表記】27 Wormwood St.,Suite #110,Boston,Massachusetts 02210 United States of America
(74)【代理人】
【識別番号】100105131
【氏名又は名称】井上 満
(72)【発明者】
【氏名】ソリン,ダニエル
(72)【発明者】
【氏名】コニダリス,ジョージ
(72)【発明者】
【氏名】マーレイ,シーン
(72)【発明者】
【氏名】フロイド-ジョーンズ,ウィリアム
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2015-044274(JP,A)
【文献】特開2012-056023(JP,A)
【文献】特開2013-193194(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/00
(57)【特許請求の範囲】
【請求項1】
モーションプラニングを容易にするためのシステムにおける動作方法であって、前記方法は、
タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、
前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、
複数の反復のそれぞれについて、
少なくとも1つのプロセッサによって
、ロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、前記それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、
少なくとも1つのプロセッサによって、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、
少なくとも1つのプロセッサによって、少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価された前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを有する、方法。
【請求項2】
少なくとも1つのプロセッサによって、ロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、
少なくとも1つのプロセッサによって、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの体積のそれぞれと比較して比較的小さい体積を有する、第1のそれぞれの離散化を生成するステップを含む、請求項1に記載の方法。
【請求項3】
少なくとも1つのプロセッサによって
、ロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、
少なくとも1つのプロセッサによって、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項1に記載の方法。
【請求項4】
少なくとも1つのプロセッサによって
、ロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、
少なくとも1つのプロセッサによって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項1に記載の方法。
【請求項5】
少なくとも1つのプロセッサによって
、ロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、
少なくとも1つのプロセッサによって、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルの各々の形状が、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルの各々の形状と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項1に記載の方法。
【請求項6】
少なくとも1つのプロセッサによって
、ロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、
少なくとも1つのプロセッサによって、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項1に記載の方法。
【請求項7】
少なくとも1つのプロセッサによって
、ロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、
少なくとも1つのプロセッサによって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した
第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した
第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状は前記第1の形状とは相違し、前記第3の形状は第2の形状とは相違する、第1の離散化を生成するステップを含む、請求項1に記載の方法。
【請求項8】
少なくとも1つのプロセッサによって
、ロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、
少なくとも1つのプロセッサによって、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項1に記載の方法。
【請求項9】
少なくとも1つのプロセッサによって、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、
少なくとも1つのプロセッサによって、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突の確率が最も低い経路をもたらす可能性が最も高いかを決定するステップを含む、請求項1に記載の方法。
【請求項10】
少なくとも1つのプロセッサによって、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、
少なくとも1つのプロセッサによって、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、最も低コストの衝突のない経路をもたらす可能性が最も高いかを決定するステップを含む、請求項1に記載の方法。
【請求項11】
少なくとも1つのプロセッサによって、少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価された前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップは、
少なくとも1つのプロセッサによって、複数のシナリオの各々に対して少なくとも1つの生成されたそれぞれの離散化を、生成されたそれぞれの離散化のうちのどれが複数のシナリオの各々に対して使用されるべきかの指示と共に記憶するステップを含む、請求項1に記載の方法。
【請求項12】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、
前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、
複数の反復のそれぞれについて、
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、
少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価された前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する、少なくとも1つの非一時的プロセッサ可読媒体
を有するモーションプラニングを容易にするためのプロセッサベースのシステム。
【請求項13】
前記少なくとも1つのプロセッサによって実行されるとき、前記プロセッサ実行可能命令またはデータのうちの少なくとも1つは、前記少なくとも1つのプロセッサに、請求項1から11の方法のいずれかをさらに実行させる、請求項12に記載のプロセッサベースのシステム。
【請求項14】
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、
少なくとも1つのプロセッサによって、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
計画グラフ内の複数のエッジの各々について、
少なくとも1つのプロセッサによって、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、前記エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される前記状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、
少なくとも1つのプロセッサによって、少なくとも前記特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップ
を有するモーションプラニングを容易にするためのシステムにおける動作方法。
【請求項15】
少なくとも1つのプロセッサによって、いくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップは、
少なくとも1つのプロセッサによって、特定されたシナリオに基づいて少なくとも2つの離散化の中から選択するステップを含み、それぞれの離散化のうち
の少なくとも2つのボクセルはそれぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、それぞれの前記離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布は互いに相違する、請求項14に記載の方法。
【請求項16】
少なくとも1つのプロセッサによって、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、
少なくとも1つのプロセッサによって、前記ロボットの前方の少なくとも1つの領域の複数
のボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域内の複数
のボクセルのそれぞれの体積と比較して比較的小さな体積を有するような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含む、請求項14に記載の方法。
【請求項17】
少なくとも1つのプロセッサによって、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、
少なくとも1つのプロセッサによって、前記ロボットの前方の第1の領域内の複数
のボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域内の複数
のボクセルが第2の体積を有し、前記第2の体積が前記第1の体積とは異なるような前記決定された離散化を用いて、前記エッジのそれぞれの掃引体積を決定するステップを含む、請求項14に記載の方法。
【請求項18】
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの直前の第1の領域内の複数
のボクセルのそれぞれが第1の体積を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数
のボクセルが第2の体積を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数
のボクセルが第3の体積を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを有する、請求項14に記載の方法。
【請求項19】
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における複数
のボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の複数
のボクセルの各々の形状と相違する、該ステップを含む、請求項14に記載の方法。
【請求項20】
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数
のボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数
のボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違する、該ステップを有する、請求項14に記載の方法。
【請求項21】
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数
のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数
のボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数
のボクセルが第3の形状を有し、前記第3の形状が前記第2の形状とは相違する、該ステップを含む、請求項14に記載の方法。
【請求項22】
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
少なくとも1つのプロセッサによって、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における複数
のボクセルの各々の形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数
のボクセルの各々の形状および体積の両方と相違する、請求項14に記載の方法。
【請求項23】
少なくとも1つのプロセッサによって、少なくとも1つの
他のプロセッサにエッジ情報のそれぞれのセットを提供するステップをさらに有し、
前記エッジ情報のそれぞれのセットは、前記ロボットの1つのペアの状態間の遷移の際
に第1のロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表す、請求項14記載の方法
。
【請求項24】
前記少なくとも1つの
他のプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、
前記フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つの
他のプロセッサの複数の回路のそれぞれに、前記ロボットの1つのペアの状態間の遷移の際に前記ロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表すそれぞれのエッジ情報のセットを適用するステップをさらに有する、請求項14~23のいずれかに記載の方法
。
【請求項25】
モーションプラニングを容易にするためのプロセッサベースのシステムであって、前記システムは、
少なくとも1つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、前記エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、
少なくとも前記特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップ
を実行させる、プロセッサベースのシステム。
【請求項26】
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項15~24の方法のいずれかをさらに実行させる、請求項25に記載のプロセッサベースのシステム。
【請求項27】
モーションプラニングを容易にするためのシステムにおける動作方法であって、
少なくとも1つのプロセッサによって、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップと、
少なくとも1つのプロセッサによって、環境を感知する1つまたは複数のセンサによって生成されたセンサ情報を受け取るステップであって、前記センサ情報は前記環境内に障害物を含み得る前記環境を表す、該ステップと、
少なくとも1つのプロセッサによって、決定された前記離散化を使用して、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、決定された前記離散化の前記ボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性のそれぞれの分布と相違する、該ステップ
を有する、方法。
【請求項28】
少なくとも1つのプロセッサによって、少なくとも1つの非一時的プロセッサ可読媒体に、前記決定された、前記環境内に障害物を含み得る前記環境の生成された離散化された表現を記憶するステップをさらに有する請求項27に記載の方法。
【請求項29】
少なくとも1つのプロセッサによって、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するステップは、
少なくとも1つのプロセッサによって、ロボットの少なくとも一部により掃引された掃引体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含む、請求項27に記載の方法。
【請求項30】
少なくとも1つのプロセッサによって、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップは、
少なくとも1つのプロセッサによって、特定された前記シナリオに基づいて少なくとも2つの離散化の間で選択するステップを含み、
それぞれの前記離散化のうちの前記少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの前記少なくとも2つの前記ボクセルの不均一性のそれぞれの分布は互いに相違する、請求項27に記載の方法。
【請求項31】
少なくとも1つのプロセッサによって、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するステップは、
少なくとも1つのプロセッサによって、決定された前記離散化であって、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルの各々が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルの各々のそれぞれの体積と比較して相対的に小さい体積を有する、該離散化を使用して前記環境の前記離散化された表現を生成するステップを含む、請求項27に記載の方法。
【請求項32】
少なくとも1つのプロセッサによって、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するステップは、
少なくとも1つのプロセッサによって、決定された前記離散化であって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該離散化を使用して、前記環境の離散化された表現を生成するステップを含む、請求項27に記載の方法。
【請求項33】
少なくとも1つのプロセッサによって、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するステップは、
少なくとも1つのプロセッサによって、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルの各々の形状と相違する、前記決定された離散化を使用して、前記環境の離散化された表現を生成するステップを含む、請求項27に記載の方法。
【請求項34】
少なくとも1つのプロセッサによって、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するステップは、
少なくとも1つのプロセッサによって、決定された前記離散化を用いて前記環境の離散化された表現を生成するステップを有し、
前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違する、請求項27に記載の方法。
【請求項35】
少なくとも1つのプロセッサによって、環境内に障害物を含み得る前記環境の離散化された表現を生成するステップは、
少なくとも1つのプロセッサによって、決定された前記離散化を用いて前記環境の離散化された表現を生成するステップを有し、
前記ロボットの直前の第1の領域内の複数の前記ボクセルの各々が第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状が第1の形状と相違し、前記第3の形状が第2の形状と相違する、請求項27に記載の方法。
【請求項36】
少なくとも1つのプロセッサによって、環境内に障害物を含み得る前記環境の離散化された表現を生成するステップは、
少なくとも1つのプロセッサによって、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、
請求項27に記載の方法。
【請求項37】
少なくとも1つのプロセッサによって、前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、
少なくとも1つのプロセッサによって、受け取った情報に少なくとも部分的に基づいて前記特定されたシナリオを特定するステップ
をさらに含む、請求項27に記載の方法。
【請求項38】
少なくとも1つのプロセッサによって、前記環境の離散化された表現を少なくとも1つの
他のプロセッサに提供するステップをさらに含む、請求項27に記載の方法。
【請求項39】
前記少なくとも1つの
他のプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、
前記環境の離散化された表現を、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された複数の回路のそれぞれに適用するステップ
をさらに含む、請求項27~38のいずれかに記載の方法。
【請求項40】
モーションプラニングを容易にするためのプロセッサベースのシステムであって、
少なくとも1つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
前記環境を感知する1つまたは複数のセンサによって前記環境内に障害物を含み得る前記環境を表すセンサ情報を受け取るステップと、
決定された前記離散化を使用して、前記環境内に障害物を含み得る前記環境の離散化された表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、決定された前記離散化の前記ボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性のそれぞれの分布と相違する、該ステップ
を前記少なくとも1つのプロセッサに実行させる、プロセッサベースのシステム。
【請求項41】
プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、請求項28~39の方法のいずれかをさらに実行させる、請求項40に記載のプロセッサベースのシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般に、ロボットのモーションプラニング(又は、動作プラニング/動作計画/motion planning/動作を計画すること)に関し、特に、1つまたは複数のプロセッサ上の環境の離散化された表現を記憶するロボットのモーションプラニングを容易にするシステムおよび方法に関する。
【発明の開示】
【発明が解決しようとする課題】
【0002】
ロボット制御やロボット工学において、ロボットのモーションプラニングは基本的な問題である。モーションプラニングは、ロボットがスタート状態からゴール状態に追従できる経路を完全に指定し、通常では、動作環境で障害物との衝突が無く、又は、動作環境で障害物に衝突する可能性が小さい。モーションプラニングの課題には、ロボット自体の特性が変化しても、比較的低コストで非常に高速な速度でモーションプラニングを実行する能力が含まれる。例えば、そのような特性はロボットが様々なサイズの物体を保持しているとき、異なるエンドエフェクタに変更するとき、または異なる付属肢(又は、付属物/appendageに変更するときに、ロボットによって占有されていると考えられる容積を含み得る。また、プロセッサチップ回路上に記憶することができる限られた量のロボットのモーションプラニング情報に関しても課題がある。
【課題を解決するための手段】
【0003】
ロボット制御システムにおける動作方法は、環境内で動作する第1のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフ(又は、計画グラフ)を決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペア(又は、対)の間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップと、第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップを有し、第2の物理的寸法のセットのうちの少なくとも1つの寸法が前記第1のセットの前記寸法のうちの対応する1つと相違する、方法と要約され得る。
【0004】
前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、前記第1のロボットは前記第1の付属肢に取り付けられた第1のエンドエフェクタを有し、前記第1のエンドエフェクタは、少なくとも第1のエンドエフェクタ配置と第2のエンドエフェクタ配置との間で移動するように選択的に動作可能であり、前記方法は、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが第1のエンドエフェクタ配置にあることを決定するステップをさらに有し、前記第1の物理的寸法のセットは前記第1のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第1のエンドエフェクタ配置にあることの決定に応答し得る。
【0005】
前記第1の付属肢に取り付けられた第1のエンドエフェクタが第2のエンドエフェクタ配置にあると判定するステップをさらに有し、前記第2の物理的寸法のセットは前記第2のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第2のエンドエフェクタ配置にあることの決定に応答し得る。前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを有し、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは、前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、前記方法は、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあるという決定に応答する、該ステップと、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあるという決定に応答する、該ステップをさらに有し得る。前記第1のロボットは、前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、前記方法は、前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有すると決定するステップをさらに有し、前記第1の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第1のエンドエフェクタの寸法のセットを表し、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有するという決定に応答する方法であり得る。
【0006】
前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有すると決定するステップをさらに有し、前記第2のエンドエフェクタが前記第1のエンドエフェクタとは少なくとも1つの形状またはサイズで相違し、前記第2の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第2のエンドエフェクタの寸法のセットを表し、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップが、前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有するという決定に応答する方法であり得る。
【0007】
前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し(例えば、燃料の消費によって重量が変化し得るために速度が変化し、移動距離が変化し得る)、前記方法は、前記自律車両または半自律車両のうちの少なくとも1つが第1の物理的状態にあると判定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記自律車両または半自律車両のうちの少なくとも1つが前記第1の物理的状態にあるという決定に応答する、該ステップと、前記自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあるという決定に応答する、該ステップをさらに有し得る。少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を前記少なくとも1つのプロセッサの複数の回路の各々に適用して、どのエッジが前記ロボットが動作する環境内の障害物によって占有される単位体積と衝突するかを決定するステップを含み得る。少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を、前記少なくとも1つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を2つ以上のボクセルをカバーする(含む)体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を2つ以上のボクセルをカバーする体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズム(直方体)で表すそれぞれのエッジ情報のセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズム(直方体)で表すそれぞれのエッジ情報のセットを生成するステップは、前記矩形プリズムの各々に対して、それぞれの矩形プリズムの体積を完全に規定する三次元座標のセットを格納するステップを含み得る。複数の計画グラフを決定するステップと、それぞれのエッジ情報のセットを生成するステップが、実行前期間中に実行され得る。少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、実行時期間中に実行され得る。
【0008】
プロセッサベースのロボット制御システムは、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、環境内で動作する第1のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップと、第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップを実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する、少なくとも1つの非一時的プロセッサ可読媒体を有し、前記第2の物理的寸法のセットのうちの少なくとも1つの寸法が前記第1のセットの前記寸法のうちの対応する1つと相違する、プロセッサベースのロボット制御システムであり得る。
【0009】
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに任意の上記方法を実行させ得る。
【0010】
ロボット制御システムにおける動作方法は、少なくとも第1のロボットが動作する1つ以上の障害物によって占有される環境の第1の離散化された表現に対して、少なくとも1つのプロセッサに前記環境の第1の離散化された表現の少なくとも一部を供給するステップと、前記少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記複数の計画グラフの各計画グラフが前記第1のロボットの異なる物理的寸法のセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間を遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは、前記第1の計画グラフのノードのペアのそれぞれによって表され、
前記ノードのペアのそれぞれは前記第1の計画グラフのそれぞれのエッジによって接続され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表す、該ステップと、対応する遷移が前記ロボットの少なくとも一部と前記環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第1の計画グラフのエッジのいずれかを特定(又は、識別)するステップを有し得る。
【0011】
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、前記エッジのうちの1つについての前記エッジ情報を、前記少なくとも1つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含み得る。前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも1つのプロセッサの複数の回路のそれぞれに前記それぞれのエッジについての前記エッジ情報を並列に適用するステップを含み得る。前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを適用するステップを含み得る。前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を体積単位で表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ2つ以上のボクセルをカバーし得る。前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ2つ以上のボクセルをカバーし得る。前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップが、前記矩形プリズムのそれぞれについて、それぞれの前記矩形プリズムの体積を完全に定義する3次元座標のペアを格納するステップを含み得る。
【0012】
前記方法は、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップであって、前記第2の配置は前記第1の配置とは相違する、該ステップと、複数の前記計画グラフの第2の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に、前記第1のロボットの少なくとも一部により掃引される体積を表し、前記第1のロボットの状態のペアは前記第2の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのそれぞれのペアは前記第2の計画グラフのそれぞれのエッジによって結合され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、前記第2の計画グラフは第1の計画グラフと相違する、該ステップと、対応する遷移が前記ロボットの少なくとも一部と環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第2の計画グラフの前記エッジのいずれかを特定するステップをさらに有し得る。
【0013】
前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢を含み、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップが、第2のエンドエフェクタが第1のエンドエフェクタの代わりに前記第1の付属肢に取り付けられるかまたは取り付けられていることを決定するステップを含み得る。前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを含み、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップを含み得る。前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップは、前記第1のエンドエフェクタが把持していない配置と把持している配置との間で遷移しているかまたは遷移したことを決定するステップを含み得る。前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記自律車両または半自律車両のうちの少なくとも1つが、前記自律車両または半自律車両のうちの少なくとも1つの前記第1及び第2の配置間で遷移しているかまたは遷移したことを決定するステップを含み得る。前記少なくとも1つのプロセッサに前記第1の計画グラフの各エッジのエッジ情報のそれぞれのセットを提供するステップは実行期間中に前記エッジ情報のそれぞれのセットを非一時的記憶装置から取り出すステップを含み、前記エッジ情報のそれぞれのセットは実行前期間中に前記非一時的記憶装置に記憶され得る。前記少なくとも1つのプロセッサはフィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つのプロセッサの複数の回路のそれぞれに前記エッジのうちの1つのためのエッジ情報を適用するステップを含み得る。
【0014】
前記少なくとも1つのプロセッサ上のメモリに前記環境の第1の離散化された表現を記憶するステップと、前記少なくとも1つのプロセッサ上のメモリに前記環境の第1の離散化された表現を記憶した後、前記少なくとも1つのプロセッサとは別個の記憶装置から前記少なくとも1つのプロセッサによって前記エッジ情報のセットを受信するステップを含み得る。
【0015】
プロセッサベースのロボット制御システムは、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、少なくとも第1のロボットが動作する1つまたは複数の障害物によって占有される環境の第1の離散化された表現に対して、環境の第1の離散化された表現の少なくとも一部を少なくとも1つのプロセッサに供給するステップと、少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、エッジ情報のそれぞれのセットを少なくとも1つのプロセッサに提供するステップであって、前記複数の計画グラフのうちの第1の計画グラフの各エッジは第1のロボットの物理的寸法の異なるセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは前記第1の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのペアのそれぞれは前記第1の計画グラフのエッジのそれぞれにより結合され、前記エッジのそれぞれは前記第1のロボットの状態のペアのそれぞれの間の遷移を表す、該ステップと、対応する遷移が前記ロボットの少なくとも一部と、前記環境内の1つまたは複数の障害物の少なくとも一部の間の衝突をもたらすことになる前記第1の計画グラフの前記エッジのいずれかを特定するステップを実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し得る。
【0016】
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、上記方法のいずれかを実行させ得る。
【0017】
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法は、タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、複数の反復のそれぞれについて、少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状(又は、離散化内のサイズおよび形状)のうちの少なくとも1つにおいて不均一(又は、不均質、非一様)であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを有し得る。
【0018】
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの体積のそれぞれと比較して比較的小さい体積を有する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第3の体積が第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数の前記ボクセルが第3の体積を有し、前記第2の体積は前記第1の体積とは相違し、前記第3の体積が前記第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルの各々の形状が、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルの各々の形状と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第3の形状が前記第2の形状と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状が前記第1の形状と相違し、前記第3の形状が前記第2の形状と相違する、第1の離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した複数の前記ボクセルが第3の形状を有し、前記第2の形状は前記第1の形状とは相違し、前記第3の形状は第2の形状とは相違する、第1の離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方とは相違し、形状のうちの少なくとも1つが非立方体である、第1のそれぞれの離散化を生成するステップを含み得る。前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突のない経路をもたらす可能性が最も高いかを決定するステップを含み得る。前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突の確率が最も低い経路をもたらす可能性が最も高いかを決定するステップを含み得る。前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、最も低コストの衝突のない経路をもたらす可能性が最も高いかを決定するステップを含み得る。少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップは、複数のシナリオの各々に対して少なくとも1つの生成されたそれぞれの離散化を、生成されたそれぞれの離散化のうちのどれが複数のシナリオの各々に対して使用されるべきかの指示と共に記憶するステップを含み得る。
【0019】
モーションプラニングを容易にするためのプロセッサベースのシステムは、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、複数の反復のそれぞれについて、少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状(又は、それぞれの離散化でのサイズおよび形状)のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する、少なくとも1つの非一時的プロセッサ可読媒体を有し得る。
【0020】
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、上記方法のいずれかを実行させ得る。
【0021】
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法は、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの(又は、多数の)掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップを有し得る。
【0022】
いくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップは、特定されたシナリオに基づいて少なくとも2つの離散化の中から選択するステップを含み、それぞれの離散化のうちの少なくとも2つのボクセルはそれぞれの離散化におけるサイズおよび形状(又は、それぞれの離散化でのサイズおよび形状)のうちの少なくとも1つにおいて不均一であり、それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布は互いに相違し得る。決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの体積と比較して比較的小さな体積を有するような前記決定された離散化を用いて前記エッジのそれぞれの掃引された体積を決定するステップを含み得る。
【0023】
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積とは異なるような前記決定された離散化を用いて、前記エッジのそれぞれの掃引された体積を決定するステップを含み得る。決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第3の体積が前記第2の体積とは異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含み得る。決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを有し得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における前記複数のボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の前記複数のボクセルの各々の形状と相違する、該ステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記第2の体積が前記第1の体積と相違する、該ステップを有し得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第3の形状が前記第2の形状とは相違する、該ステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状が前記第1の形状とは相違し、前記第3の形状が前記第2の形状とは相違する、該ステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを有し得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における前記複数のボクセルの各々の形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の前記複数のボクセルの各々の形状および体積の両方と相違し得る。
【0024】
前記方法は、前記特定されたシナリオを受信するステップをさらに含み得る。
【0025】
前記方法は、少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップをさらに有し、前記エッジ情報のそれぞれのセットは、前記ロボットの1つのペアの状態間の遷移の際に前記第1のロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表し得る。
【0026】
前記少なくとも1つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、前記フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つのプロセッサの複数の回路のそれぞれに、前記ロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表すそれぞれのエッジ情報のセットを適用して、前記ロボットの1つのペアの状態間を遷移させるステップをさらに有し得る、
【0027】
モーションプラニングを容易にするためのプロセッサベースのシステムであって、前記システムは、少なくとも1つのプロセッサと、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、前記エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップを実行させる、プロセッサベースのシステムであり得る。
【0028】
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、上記方法のいずれかを実行させうる。
【0029】
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法は、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップと、環境を感知する1つまたは複数のセンサによって生成されたセンサ情報を受け取るステップであって、前記センサ情報は障害物を含み得る環境を表す、該ステップと、決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状(又は、それぞれの離散化でのサイズおよび形状)のうちの少なくとも1つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性と相違する、該ステップを有し得る。
【0030】
上記方法は、少なくとも1つの非一時的プロセッサ可読媒体に、生成された前記障害物を含み得る環境の離散化表現を記憶するステップをさらに有し得る。
【0031】
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含み得る。決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、ロボットにより掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、特定された前記シナリオに基づいて少なくとも2つの離散化の間で選択するステップを含み、それぞれの前記離散化のうちの少なくとも2つのボクセルは前記それぞれの離散化におけるサイズおよび形状(又は、それぞれの離散化でのサイズおよび形状)のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違し得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の少なくとも1つの領域の複数のボクセルの各々が前記ロボットの後方の少なくとも1つの領域の複数のボクセルの各々のそれぞれの体積と比較して相対的に小さい体積を有する、該離散化を使用して環境の離散化された表現を生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積と相違する、該離散化を使用して環境の離散化された表現を生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第3の体積が第2の体積と相違する、該離散化を使用して生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第2の体積が第1の体積と相違し、第3の体積が第2の体積と相違する、該離散化を使用して生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを含み得る。障害物を含み得る前記環境の離散化表現を生成するステップは、前記ロボットの前方の少なくとも1つの領域内の複数のボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の複数のボクセルの各々の形状と相違する、前記決定された離散化を使用して、前記環境の離散化表現を生成するステップを含み得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数のボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数のボクセルが第3の形状を有し、前記第3の形状が前記第2の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数のボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数のボクセルが第3の形状を有し、前記第2の形状が第1の形状と相違し、前記第3の形状が第2の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの直前の第1の領域内の複数の前記ボクセルの各々が第1の形状を有し、前記ロボットの前記における前記ロボットに関して前記第1の領域から相対的に外側に離間した複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した複数の前記ボクセルが第3の形状を有し、前記第2の形状が第1の形状と相違し、前記第3の形状が第2の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第1のそれぞれの離散化を生成し得る。
【0032】
前記方法は、前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、受け取った情報に少なくとも部分的に基づいて特定されたシナリオを特定し得る。
【0033】
前記方法は、前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、受け取った情報に少なくとも部分的に基づいて特定されたシナリオを特定するステップ
をさらに含み得る。
【0034】
前記方法は、前記環境の離散化された表現を少なくとも1つのプロセッサに提供するステップをさらに含み得る。
【0035】
前記方法は、
前記少なくとも1つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、前記環境の離散化された表現を、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された複数の回路のそれぞれに適用するステップをさらに含み得る。
【0036】
モーションプラニングを容易にするためのプロセッサベースのシステムは、少なくとも1つのプロセッサと、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害物を含み得る環境の離散化表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、環境を感知する1つまたは複数のセンサによって前記障害物を含み得る環境を表すセンサ情報を受け取るステップと、決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性と相違する、該ステップを実行させ得る。
【0037】
前記方法は、前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、上記方法のいずれかを実行させ得る。
【0038】
複数の計画グラフを使用するロボット制御システムにおける動作方法は、各計画グラフは複数のエッジによってそれぞれ接続された複数のノードをそれぞれ含み、各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれはそれぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表され、前記方法は、前記複数の計画グラフのうちの第1の計画グラフに対し、 第1の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第1の計画グラフを更新するステップと、 更新された前記第1の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップと、 更新された前記第1の計画グラフから、前記1つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、前記方法はさらに、前記最適化された結果が満足条件を満たさないと判断したことに応じて、 第2の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第2の計画グラフを更新するステップと、 更新された前記第2の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップを含み得る。
【0039】
上記方法は、更新された前記第2の計画グラフから、前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップをさらに含み得る。
【0040】
上記方法は、 前記更新された第2の計画グラフからの前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、更新された前記第2計画グラフからの前記1つまたは複数の最適化された結果の1つによって特定された遷移を前記ロボットに適用するステップをさらに有し得る。
【0041】
上記方法は、前記更新された第2の計画グラフからの前記1つまたは複数の最適化された結果がもし存在しないのなら、当該結果が前記満足条件を満さないと決定したことに応答して、 第3の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第3の計画グラフを更新するステップと、 更新された前記第3の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップをさらに有し得る。
【0042】
上記方法は、前記更新された第3の計画グラフからの前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、更新された前記第3計画グラフからの前記1つまたは複数の最適化された結果の1つによって特定される遷移をロボットに適用するステップをさらに有し得る。
【0043】
上記方法は、更新された前記第2の計画グラフから、もし存在するのなら前記1つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が任意の経路を生成するかどうかを決定するステップを含み得る。
【0044】
上記方法は、更新された前記第2の計画グラフから、もし存在するのなら前記1つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が衝突のない経路を生成するかどうかを決定するステップを含み得る。前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップは、前記第1の計画グラフ内の前記エッジの各々について、前記エッジに関するエッジ情報のセットを、前記複数の回路の各々に並列に適用するステップを含み、前記回路は前記ロボットが動作する環境内の障害物によって占有されるそれぞれの単位体積をそれぞれ表し得る。少なくとも1つのプロセッサが、少なくとも前記第1のロボットが動作する環境内の1つまたは複数の障害物によって占有される複数の単位体積のそれぞれを表す複数の回路を実装するように構成され得る。
【0045】
プロセッサベースのロボット制御システムは、複数の計画グラフを使用するプロセッサベースのロボット制御システムであって、各計画グラフは複数のエッジによって接続された複数のノードをそれぞれ含み、各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれは、それぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表され、前記システムは、少なくとも1つのプロセッサと、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、前記複数の計画グラフのうちの第1の計画グラフに対し、 第1の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第1の計画グラフを更新するステップと、 更新された前記第1の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップと、 更新された前記第1の計画グラフから、前記1つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、前記方法はさらに、前記最適化された結果が満足条件を満たさないと判断したことに応じて、 第2の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第2の計画グラフを更新するステップと、 更新された前記第2の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップを実行させ得る。
【0046】
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、上記方法のいずれかを実行させ得る。
【図面の簡単な説明】
【0047】
図面において、同一の参照番号は、同様の要素または作用を示す。図面における要素のサイズおよび相対位置は、必ずしも一定の縮尺で描かれてはいない。例えば、さまざまな要素の形状および角度は一定の縮尺で描かれず、これらの要素のいくつかは、図面を見やすくするために、随時適当に拡大および配置されている。さらに、描かれた要素の特定の形状は、特定の要素の実際の形状に関するいかなる情報も伝えることを意図しておらず、図面における認識を容易にするために単に選択されたものである。
【
図1】
図1は、1つの例示としての実施形態に従った、ロボットが動作し得る環境の概略図である。
【
図2】
図2は、1つの例示としての実施形態に従った、
図1の環境で動作し得るロボットのロボット制御システムの機能ブロック図である。
【
図3】
図3はロボットが動作することができる
図1の環境の概略図であり、1つの例示としての実施形態に従って、ロボットが3次元(3D)空間内の1つの位置から、環境内の3D空間内の別の位置に遷移するロボットと、3D空間内の1つの位置から3D空間内の別の位置に遷移する際に、ロボットの付属物によって掃引される体積の表現とを示す。
【
図4A】
図4Aは、1つの例示としての実施形態に従った、対応する遷移がロボットと環境内の1つ以上の障害物との間の衝突をもたらし得ることが決定された計画グラフのエッジを含む、
図1のロボットのための例示的なロボットのモーションプラニンググラフである。
【
図4B】
図4Bは、1つの例示的実施形態に従う、対応する遷移がロボットと環境内の1つまたは複数の障害物との間の衝突をもたすであろうことが決定された計画グラフのエッジが除去された
図1のロボットのための例示的ロボットのモーションプラニンググラフである。
【
図5】
図5は、1つの例示としての実施形態に従った、特定の状況に従った異なる計画グラフのエッジ情報を提供することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
【
図6】
図6は、1つの例示としての実施形態に従った、対応する遷移が衝突をもたらすであろう計画グラフのエッジを特定することによってロボットのモーションプラニングを容易にするロボット制御システム内の動作方法を示すフロー図であり、該計画グラフはオフチップメモリに記憶された複数の計画グラフの1つであり、その各々は、ロボットの異なる物理的寸法のセットに関連付けられている。
【
図7】
図7は、1つの例示としての実施形態に従った、ロボットが動作する環境の表現の生成された非均一(又は、非一様)な離散化の有効性を評価することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
【
図8】
図8は、1つの例示としての実施形態に従った、ロボットが通過するであろうそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用すべきかを決定することによってロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
【
図9】
図9は、1つの例示としての実施形態に従った、ロボットが決定された離散化を用いて動作する環境の離散化された表現を生成することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
【
図10】
図10は、1つの例示としての実施形態に従った、計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
【発明を実施するための形態】
【0048】
種々の実施態様が正しく理解されるように、開示内容の詳細を以下に説明する。但し、当業者ならば、これら特定の細部の1つまたは2つ以上を欠いても、または他の方法、他の構成部材、他の材料でも実施が可能であることは容易に理解するところであろう。他の例では、コンピュータシステム、アクチュエータシステム、および/または通信ネットワークに関連する周知の構造は実施形態の説明を不必要に曖昧にすることを避けるために、詳細には示されておらず、または説明されていない。他の例では実施形態の説明を不必要に曖昧にすることを回避するために、1つまたは複数のオブジェクトなどの知覚データおよびボリュメトリック表現を生成するための周知のコンピュータビジョン方法および技法は詳細には説明されていない。
【0049】
本明細書及び特許請求の範囲において理由が必要ない限り、用語”を有する”及びその派生語は確定していない包括的な意味、即ち、”含む”であるとみなされるが、それに限定されるものではない
【0050】
本明細書全体を通して、「1つの実施形態」または「一実施形態」とは実施形態に関連して説明された特定の特徴、構成または特徴が少なくとも一実施形態に含まれることを手段し、したがって、本明細書全体を通して様々な場所に「1つの実施形態において」または「一実施形態において」という語句が現れることは必ずしもすべてが同じ実施形態を指すわけではない。さらに、特別な特徴、構造又は特質は1以上の実施形態において任意の適当な方法で組み合わせられ得る。
【0051】
本明細書および添付の特許請求の範囲で使用されるように、単数形「a」、「an」、および「the」は内容が別段の明確な指示をしない限り、複数の指示対象を含む。また、用語「または」は内容が別段の明確な指示をしない限り、「および/または」を含む意味で一般に使用されることにも留意されたい。
【0052】
冒頭の説明及び要約は便宜上のものであり、本発明の範囲を表すものではなく、又は実施形態を意味するものでもない。
【0053】
図1は、1つの例示としての実施形態に従った、ロボット102が動作し得る動作環境100を示す。簡潔にするために、本明細書では、動作環境100を環境100と呼ぶ。環境はロボット102が動作し、移動することができる二次元または三次元空間を表す。ロボット102はデカルト、ロボットアセンブリ(SCARA)のための選択的に従順なアーム、円筒形、デルタ、極性、および垂直関節を含むが、これらに限定されない、任意のタイプのロボットであってもよい。また、ロボットは自律的に又は半自律的に(すなわち、少なくとも部分的には自律的に)作動し、環境100によって表される空間内を移動することができる自動車、飛行機、ドローン、又は任意の他の車両であってもよい。環境100は、
図4Aおよび
図4Bのロボットのモーションプラニンググラフに関して以下で参照され、「自動車および再構成可能な移動計画プロセッサのための移動計画」と題されたその全体が参照により本明細書に組み込まれる2017年6月9日に出願された国際特許出願第PCT/US2017/036880号、ならびに「特定のロボット移動計画ハードウェアおよびその製造および使用方法」と題されたその全体が参照により本明細書に組み込まれる2016年1月5日に出願された国際特許出願第WO2016/122840号に説明される、ロボットの「構成空間」(しばしば「C空間」と呼ばれる)とは異なるロボットが動作する2次元または3次元空間である。構成空間は典型的には多くの次元(すなわち、3次元より大きい)である。特に、計画グラフの各ノードはロボットの特定の構成(ロボットの関節位置の特定のセットの完全な仕様である)、ロボットの姿勢、速度、および方位を含むことができるが、これらに限定されない、ロボットの状態を表す。計画グラフの各エッジは、ある状態から別の状態へのロボットの遷移を表す。
【0054】
図1を参照すると、環境100は、障害物衝突領域を含み得る。これらの障害物衝突領域は環境100内の静的物体(例えば、建物、樹木、岩、家具等)または動的物体(例えば、他のロボット、車両、人間、動物、転動岩、鳥等)によるものであり得る。例えば、障害物A112および障害物B104はロボット102が障害物A112または障害物B104のいずれかと同時に環境100内の同じ空間を占有しようとした場合に、ロボット102が障害物A112または障害物B104と衝突することが可能であるように、環境100内に衝突領域を作り出す物体を表す。様々な実施形態では、
図1に示すオブジェクトよりも少ないオブジェクトまたは追加のオブジェクトが存在し得る。
【0055】
ロボットのモーションプラニングの課題は、比較的低コストで、非常に高速で、ロボット自体の特性が変化することにつれて頻繁にロボットのモーションプラニングを実行できるようにすることを含む。例えば、そのような特性はロボットが様々なサイズの物体を保持しているとき、異なるエンドエフェクタに変更するとき、または異なる付属肢(又は、付属物)に変更するときに、ロボットによって占有されると考えられる容積を含むことができるが、これらに限定されない。したがって、ロボット102は運動を実行するために、これらの変化にキャッチアップしている(対応できる)ことが有利である。これに関与するのは、ロボット102および環境100内の障害物が占有されていると考えられる空間を効率的に表現し、伝達し、比較するための課題である。例えば、
図1に示されるように、障害物A112は、現在、ロボット102の前方にある。ロボット102が、ロボットアーム106のどの動作(およびロボット102の任意の動作)が障害物A112との衝突をもたらすかどうかを迅速かつ効率的に判定することができることは有利である。したがって、本開示はロボット102が環境100内のロボット102および障害物A112によって占有される空間を効率的に表現し、通信し、比較することを可能にする解決策を提供し、ロボットアーム106のどの動作が障害物A112との衝突をもたらすかを判断することを容易にする。
【0056】
図1は代表的な環境100を示すが、典型的な環境は他のロボットに対応する物体、ならびに様々な他の自然または人工の静的および動的な物体および障害物を含む、多くの追加の物体および実体を含み得る。本明細書で教示する概念は、図示したものよりも混雑した環境で同様に使用することができる。
【0057】
図2および以下の議論は、1つの例示としての実施形態に従って、様々な例示および説明されたロボットのモーションプラニングシステムおよび方法が実施され得る、適切なロボット制御システム200の簡潔で、一般的な説明を提供する。
【0058】
必須ではないが、多くの実施形態はコンピュータまたはプロセッサ読み取り可能媒体上に記憶され、衝突評価およびロボットのモーションプラニング動作を実行することができる1つ以上のコンピュータまたはプロセッサによって実行されるプログラムアプリケーションモジュール、オブジェクト、またはマクロなどの、コンピュータ実行可能命令の一般的なコンテキストで説明される。そのようなロボットのモーションプラニング動作は計画グラフのエッジに関連するロボット掃引体積の1つまたは複数の離散化された表現を生成することと、ロボット掃引体積の離散化された表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定することと、ロボット102が動作することになる環境の離散化された表現を生成すること、環境の離散化された表現を生成するために、複数の離散化のうちのどれを使用するかを決定すること、決定された複数の計画グラフおよびエッジ情報のそれぞれのセットを記憶すること、計画グラフのノードによって表される状態の間を遷移する際にロボット102の少なくとも一部によって掃引される体積(又は、ボリューム、容積、立体的な部分又は場所)を表す情報を生成すること、計画グラフのエッジに関する衝突評価を実行すること、計画グラフから1つまたは複数の最適化された結果を特定すること、計画グラフのエッジに関連する掃引体積の離散化された表現と、ロボット102が動作する環境内の障害物の離散化された表現との間の衝突を検査することと、最適化がロボット102のための衝突のない経路を生成するかどうかを決定すること、ロボット102のためのロボットのモーションプラニングを実施すことのうちの1つまたは複数を含むことができるが、それらに限定されない。
【0059】
図1のロボット102は、プロセッサ212aなどの1つまたは複数のプロセッサに知覚データを送る、
図2に示すセンサ282などのセンサを有する。知覚データは、ボクセルまたはボックスが現在の環境に存在するストリームである。このデータは、プロセッサ212aなどの1つまたは複数のプロセッサによって、占有グリッドの形で生成される(または提供される)。特に、ロボットまたは環境100内の物体(例えば、障害物)のいずれかを表す場合、それらの表面をボクセル(3Dピクセル)またはポリゴンのメッシュ(しばしば三角形)のいずれかとして表すことができる。空間の各離散化された領域は、「ボクセル」と呼ばれ、3D(ボリュメトリック)ピクセルと等価である。場合によっては、代わりに物体をボックス(矩形プリズム(又は、長方形プリズム/rectangular prism))として表すことが有利である。物体がランダムに成形されていないという事実のために、ボクセルがどのように編成されるかにはかなりの量の構造が存在することがあり、物体内の多くのボクセルは3D空間内で互いにすぐ隣り合っている。したがって、オブジェクトをボックスとして表すことは、はるかに少ないビットを必要とすることがある(すなわち、ボックスの2つの対向するコーナーについてx,y,zデカルト座標だけを必要とすることがある)。また、ボックスに対して交差テストを行うことは、ボクセルに対して行うことに匹敵する複雑さである。
【0060】
多くの実施形態は複数のセンサの出力を組み合わせることができ、センサは、非常に細かい粒度のボクセル化を提供することができる。しかし、ロボット102がロボットのモーションプラニングを効率的に実行するために、ロボット102のプロセッサ212aは様々な状態間の遷移を行うときに、ロボット102によって掃引される3D空間内の環境および体積を表すために、より粗いボクセル(すなわち、「プロセッサボクセル」)を使用することができる。したがって、システム200は、それに応じてセンサ282の出力を変換することができる。例えば、センサ282の出力は各軸上で10ビットの精度を使用することができ、したがって、センサ282から直接生じる各ボクセル(すなわち、「センサボクセル」)は30ビットIDを有し、230のセンサボクセルが存在する。システム200は18ビットのプロセッサボクセルIDに対して、それぞれの軸上で6ビットの精度を(設計時および実行時に)使用し、218のプロセッサボクセルが存在する。したがって、プロセッサボクセルごとに212のセンサボクセルがある。実行時に、システム200が、プロセッサボクセル内のセンサボクセルのいずれかが占有されていると判定した場合、システム200はプロセッサボクセルが占有されていると見なし、それに応じて占有グリッドを生成する。
【0061】
ロボット102のための計画グラフの各エッジはまた、そのエッジによって表されるある状態から別の状態への計画グラフにおける遷移を行うときに、ロボット102によって掃引される3D空間内の体積に対応するいくつかの数のボクセル(またはボックス)を有する。ある状態からそのエッジによって表される別の状態への計画グラフの遷移を行うときにロボット102によって掃引されるこれらのボクセルまたはボックスは、計画グラフエッジ情報メモリ284などの計画グラフに専用のオフチップメモリに計画グラフの各エッジごとに記憶することができる。様々な他の実施形態では、ある状態からそのエッジによって表される別の状態への計画グラフの遷移を行うときにロボット102によって掃引されたボクセルまたはボックスが例えば、1つまたは複数の特定用途向け集積回路(ASIC)内のオンチップメモリなどの他の位置に、計画グラフの各エッジごとに格納することができる。
【0062】
1つの実施形態では、コリジョンアセスメント(又は、衝突の評価)がまず、プロセッサ212aのようなプロセッサに、すべての障害ボクセル(またはボックス)をストリーミングすることによって実行される。例えば、環境100を表す障害物ボクセル(又はボックス)が、障害物A112及び障害物B104を含んで、プロセッサ212aにストリームされて環境メモリ294に保存され得る。環境メモリ294は、プロセッサ212aのオンチップメモリである。いくつかの実施形態では、環境メモリ294がフィールドプログラマブルゲートアレイ(FPGA)内のブロックRAM(BRAM)であってもよい。ある実施形態では、BRAMが数キロビットのランダム・アクセス・メモリを含む専用の構成可能な2ポート・メモリ・ユニットであってもよい。FPGAは、これらのブロックのいくつかを含む。次に、ロボット102に対する計画グラフの各エッジに対するエッジ情報は計画グラフエッジ情報メモリ284からのように、計画グラフに充てられたオフチップメモリからストリーミングされる。エッジボクセル(またはボックス)ごとに、エッジの掃引体積からストリーミングインされるとき、それが障害物ボクセル(またはボックス)のいずれかと衝突する場合、プロセッサ212aは、計画グラフ内のそのエッジとの衝突を判定する。
【0063】
例えば、エッジボクセルが計画グラフのエッジxの掃引体積(又は、掃引体積)からストリーミングされるとき、プロセッサ212aは、エッジボクセルを環境メモリ294に記憶された全ての障害物ボクセル(又はボックス)と比較するためにブール回路(Boolean circuity)を使用することができる。システム200が比較に基づいて、エッジボクセルが障害物ボクセル(またはボックス)のいずれかと衝突すると判定した場合、システム200は、エッジxとの衝突に注目する(又は、衝突を記録する)。この実施形態は、衝突評価が計画グラフのすべてのエッジ上で並行して実行される他の設計と比較して、衝突評価においてはるかに大きな計画グラフを使用することを可能にするので、衝突評価の技術を改善する。特に、これは、プロセッサチップ回路上に記憶することができる限られた量の計画グラフ情報に関して、他の設計の欠点を克服するのに役立つ。本明細書で説明する衝突評価方法を使用すると、環境メモリ294などのオンチップ記憶装置は、多くの場合、すべての障害物ボックスを記憶するのに十分である(ボクセルを使用するほどではない場合があるが)。これは、より安価なオフチップ記憶装置に大きな計画グラフおよび/または複数の計画グラフを記憶する能力を提供する。例えば、これは大きな計画グラフおよび/または複数の計画グラフを、いくつかの実施形態ではダイナミックランダムアクセスメモリのような安価なタイプのメモリである計画グラフエッジ情報メモリ284に記憶する能力を提供する。
【0064】
様々な実施形態では、そのような動作が完全にハードウェア回路で、またはシステムメモリ214などのメモリストレージに格納されたソフトウェアとして実行され、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)プロセッサ、プログラムドロジックコントローラ(PLC)、電気的プログラマブルリードオンリメモリ(EEPROM)などの1つまたは複数のハードウェアプロセッサ212aによって、またはメモリストレージに格納されたハードウェア回路およびソフトウェアの組合せとして実行され得る。
【0065】
また、知覚、計画グラフ構築、衝突検出、および経路探索の様々な関連する態様の実施は2017年6月9日に出願された国際特許出願第PCT/US2017/036880号、発明の名称「自動車および再構成可能な移動処理装置のための移動計画」、2016年1月5日に出願された国際特許出願第WO2016/122840号、発明の名称「特定のロボット移動ハードウェアおよびその製造方法および使用方法」、ならびに平成30年1月12日に出願された「動的オブジェクトを有する環境における自動車の移動を容易にするための装置、方法及び物品」という名称の米国特許出願第/616,783にも記載され、これらはその全体が参照により本明細書に組み込まれる。当業者は例示された実施形態、並びに他の実施形態がロボット、ハンドヘルドデバイス、マイクロプロセッサベース又はプログラマブルコンシューマエレクトロニクス、パーソナルコンピュータ(「PC」)、ネットワーク化されたPC、ミニコンピュータ、メインフレームコンピュータなどを含む、他のシステム構造及び構成及び/又は他のコンピューティングシステム構造及び構成で実施され得ることを理解するであろう。実施形態またはその一部は、(例えば、設計時および事前実行時に)通信ネットワークを介してリンクされたリモート処理デバイスによってタスクまたはモジュールが実行される分散コンピューティング環境で実施することができる。分散コンピューティング環境では、プログラムモジュールがローカルおよびリモート・メモリ記憶装置またはメディアの両方に配置されてもよい。しかしながら、ロボットのモーションプラニングを改善するのを助けるためには、ある種の情報がどこにどのように記憶されるかが重要である。
【0066】
例えば、種々のロボットのモーションプラニングソリューションはロードマップ(すなわち、計画グラフ)をプロセッサに「焼き付け」し、ロードマップ内の各エッジはプロセッサの再構成不可能なブール回路に対応する。計画グラフがプロセッサに「焼き付け」される設計が複数または大規模な計画グラフを格納するために、限定されたプロセッサ回路を有するという問題を生じる。
【0067】
1つの解決策は、計画グラフ情報をメモリ記憶装置に配置する再構成可能設計を提供する。このような解決策では再び、計画グラフの各エッジについての情報が存在するが、この情報は回路に焼き付けされる代わりにメモリに記憶される。各エッジはロボット102の動作に対応し、各動作は、3D空間内の体積(又は、体積)を掃引する。この掃引体積はいくつかの障害物ボクセル(またはボックス)と衝突するが、様々な実施形態では障害物を表すことが決定されてもよい。このような解決策では、このエッジが衝突するボクセルがメモリに記憶される情報である。
【0068】
本開示はより効率的な方法で実行時に複数の計画グラフ間で動的に切り替える(すなわち、プロセッサを再構成する)ことを提供し、他の設計を超えるいくつかの改善を提供する解決策を提供する。例えば、物体を把持することができるエンドエフェクタを有するロボットを考える。何かを保持しているときと、何かを保持していないときとで、ロボットアームが3D空間の異なる部分に衝突する。一例は、エンドエフェクタを有するアームの端部に大きなボールを保持するロボットアーム106である。ロボット102が何かを保持している場合、ロボット102が「何も保持していない」ときに対応する計画グラフは機能しない。逆に、ロボット102が何も保持していない場合であっても、「何かを保持している」計画グラフを非常に控えめに使用することができるが、それは非効率的であり、ロボット102が最大の可能なオブジェクトを保持しているシナリオに対応する単一の計画グラフの使用を必要とする。代わりに、様々な実施形態ではシステム200が異なる可能な特性に対応する計画グラフのファミリー、例えば、「何も保持していない」、「サイズxの小さい球を保持している」、「サイズyの矩形プリズムを保持している」などを構築する。これらの計画グラフはロボット102が物を拾い上げ、それらを下に置くときに、プロセッサ212aによって計画グラフエッジ情報メモリ284に入れたり、そこから出したりすることができる。この解決策は、エンドエフェクタが時々変化するロボットにも適用される。例えば、ロボット102は、第1のセットの寸法を有する第1のエンドエフェクタを有する構成であってもよい。この第1のエンドエフェクタは、第2の寸法セットを有する第2のエンドエフェクタと交換されてもよい。第1のエンドエフェクタが第2の寸法セットの第2のエンドエフェクタと交換されると、ロボット102は、第2のエンドエフェクタを有する異なる配置になる。第2の寸法セットの寸法が第1の寸法セットの寸法と異なる場合、ロボットによって掃引される体積は、エンドエフェクタが入れ替わると変化する。また、例えば、ロボットが自律型または部分的に自律型の車両である場合、車両は第1の期間の間、第1の配置において第1のセットの寸法を有し、同じ車両は、第2の期間の間、第2の配置において第2のセットの寸法を有することができる。例えば、車両は第1の構成では空であり、第2の構成では完全に積載されており、それにより車両の重量が変化し、場合によっては、例えば、曲がり角またはカーブの周りをコーナリングするときに、道路上の車両の高さ、車両の下のクリアランス、または車両の軌道さえも変化し得る。第2の寸法の組の寸法が第1の寸法の組の寸法と異なる場合、車両によって掃引される容積は、第1の構成と第2の構成との間で変化する。同様に、第1の配置と第2の配置との間で軌道が変化する場合には、車両によって掃引される容積が配置間で変化する。したがって、システム200は、異なるエンドエフェクタについて、異なる計画グラフを計画グラフエッジ情報メモリ284に格納する。
【0069】
計画グラフは構築するのにかなりの時間とリソースを要するが、ここで提供される解決策では実行時などの前に一度だけ実行することが必要なだけである。いったん計画グラフが生成されると、それらはすべて計画グラフエッジ情報メモリ284に記憶されてもよく、プロセッサ212aがそれらをインおよびアウトにスワップ(交換)するか(すなわち、スワップインおよびスワップアウトするか)、またはロボットが特定のサイズの物体を把持しているときなど、ロボット102の現在の特性に基づいてどちらを使用するかを選択することは、比較的迅速かつ効率的である。
【0070】
上述のように、いくつかの前処理アクティビティは実行時(又は、ランタイム)の前に実行することができ、したがって、いくつかの実施形態では、これらの動作が通信ネットワークを介してネットワークインターフェース260を介してロボット制御システム200にリンクされたリモート処理デバイスによって実行することができる。例えば、プログラミング段階は、関心のある問題に対するロボットの準備を可能にする。そのような実施形態では、実行時計算を回避するために、広範囲の前処理が活用される。ロードマップ内のエッジによって表される1つの状態から別の状態への計画グラフ内の遷移を行うときにロボット102によって掃引される3D空間内の体積に関する事前計算されたデータは、計画グラフエッジ情報メモリ284に格納され、実行時にプロセッサ212aによってアクセスされ得る。システム200はまた、実行時中に起こり得るロボットの異なる可能な変化する寸法特性に対応して実行時の前に、一群の計画グラフ(計画グラフのファミリー)を構築してもよい。次に、システム200は、このような計画グラフを計画グラフエッジ情報メモリ284に記憶する。
【0071】
実行時フェーズの間、センサ282は、プロセッサ212aに認識データ(知覚データ/perception data)を送信する。認識データは現在の環境に存在し、オンチップ環境メモリ294に格納されているボクセルまたはボックスのストリームであってもよい。環境メモリ294から検索された認識データを計画グラフエッジ情報メモリ284に記憶された情報と比較するためにブール回路を使用して、プロセッサ212aはどの運動が衝突を回避するかを計算し、ロボット102が従うべき計画グラフ内の対応する経路を選択する。次に、プロセッサ212aが動作し、結果として生じる経路をアクチュエータシステム266に戻す。
【0072】
図2は、プロセッサ212aによって表される1つまたは複数のプロセッサと、システムメモリ214、計画グラフエッジ情報メモリ284、およびディスクドライブ224に関連するコンピュータ可読媒体226などの1つまたは複数の関連する非一時的機械可読記憶媒体とを備える、ロボット102用のものなどのロボット制御システム200を示す。システムメモリ214、計画グラフエッジ情報メモリ284、およびディスクドライブ224に関連するコンピュータ可読媒体226を含む、関連する一時的でないコンピュータまたはプロセッサ可読記憶媒体は、システムバス216などの1つ以上の通信チャネルを介してプロセッサ212aに通信可能に結合される。システムバス216は、メモリコントローラを備えたメモリバス、周辺バス、および/またはローカルバスを含む、任意の既知のバス構造またはアーキテクチャを採用することができる。1つまたは複数のセンサ282およびアクチュエータシステム266も、システムバス216を介してプロセッサ212aに通信可能に結合される。このようなコンポーネントの1つ以上は例えば、ユニバーサルシリアルバス3.0、PCIe(Peripheral Component Interconnect Express)、またはThunderbolt(登録商標)を介して、1つ以上のパラレルケーブル、シリアルケーブル、または高速通信が可能なワイヤレスネットワークチャネルなど、1つ以上の他の通信チャネルを介して、互いに通信する場合もあれば、その代わりに通信する場合もある。
【0073】
また、ロボット制御システム200はネットワークインターフェース260を介してロボット制御システム200の様々な構成要素に直接通信可能に結合または間接通信可能に結合された遠隔システム、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ウルトラポータブルコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルコンピュータ(図示せず)に通信可能に結合されてもよい。そのような遠隔システムはロボット制御システム200およびロボット制御システム200内の様々な構成要素とプログラムし、構成し、制御し、またはさもなければインターフェースし、またはそれらにデータを入力するために使用されてもよい。このような接続はインターネットプロトコルを使用する1つ以上の通信チャネル、例えば、インターネットを介して、1つ以上のワイドエリアネットワーク(WAN)を介してもよい。上述したように、実行前計算(例えば、計画グラフのファミリーの生成)はロボット102または他のロボットとは別個のシステムによって実行することができ、一方、システム200がロボット102の物理的寸法の変化にリアルタイムで反応するように計画グラフを変更することができることが重要であるため、実行時計算は、ロボット102上にあるプロセッサ212上で実行することができる。
【0074】
別段の記載がない限り、
図2に示される様々なブロックの構造および動作は従来の設計のものであるか、または2017年6月9日出願の国際特許出願第PCT/US2017/036880号「自動車用車両および再構成可能な移動計画処理装置のための移動計画(MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS)」、2016年1月5日出願の国際特許出願第WO2016/122840「特殊なロボット運動計画ハードウェアとその作成および使用方法(SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME)」、および/または2018年1月12日出願の米国特許出願第62/616,783号「動体を有する環境における自動車の移動計画を容易にするための装置、方法および物品(APPARATUS, METHOD AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC OBJECTS)」に記載されており、それらの全体が参照により本明細書に組み込まれる。その結果、そのようなブロックは参照により本明細書に組み込まれる参考文献を考慮して、関連技術の当業者によって理解されるように、さらに詳細に説明される必要はない。
【0075】
ロボット制御システム200は、1つまたは複数の処理ユニット212と、システムメモリ214と、計画グラフエッジ情報メモリ284と、システムメモリ214および計画グラフエッジ情報メモリ284を含む様々なシステム構成要素を処理ユニット212に結合するシステムバス216とを含み得る。いくつかの実施形態では、計画グラフエッジ情報メモリ284がシステムメモリ214であってもよく、またはその一部であってもよい。処理ユニットは、1つまたは複数の中央処理ユニット(CPU)212a、デジタル信号プロセッサ(DSP)212b、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などの任意の論理処理ユニットとすることができる。システムメモリ214は読取り専用メモリ(「ROM」)218およびランダム・アクセス・メモリ(「RAM」)220を含むことができ、計画グラフエッジ情報メモリ284はDRAMなどのRAMを含むことができ、ROM218の一部を形成することができる基本入出力システム(「BIOS」)222は、起動中などにロボット制御システム200内の要素間で情報を転送するのを助ける基本ルーチンを含む。
【0076】
ロボット制御システム200は例えば、ハードディスクから読み書きするためのハードディスクドライブ、リムーバブルフラッシュメモリデバイスから読み書きするためのフラッシュメモリドライブ、リムーバブル光ディスクから読み書きするための光ディスクドライブ、または磁気ディスクから読み書きするための磁気ディスクドライブとすることができるディスクドライブ224を含み得る。ロボット制御システム200はまた、様々な異なる実施形態において、そのようなディスクドライブの任意の組み合わせを含んでもよい。ディスクドライブ224は、システムバス216を介して処理ユニット212と通信することができる。ディスクドライブ224は当業者に知られているように、そのようなドライブとシステムバス216との間に結合されたインターフェースまたはコントローラ(図示せず)を含み得る。ディスクドライブ224およびその関連するコンピュータ可読媒体226は、コンピュータ可読命令、データ構造、プログラムモジュール、およびロボット制御システム200のための他のデータの不揮発性記憶装置を提供する。当業者は、WORMドライブ、RAIDドライブ、磁気カセット、デジタルビデオディスク(「DVD」)、ベルヌーイカートリッジ、RAM、ROM、スマートカードなど、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体を使用することができることを理解するであろう。
【0077】
プログラムモジュールは、オペレーティングシステム236、1つ以上のアプリケーションプログラム238、他のプログラムまたはモジュール240、プログラムデータ242などのシステムメモリ214に記憶することができる。アプリケーションプログラム238はプロセッサ212に、計画グラフのエッジに関連するロボット掃引体積の1つまたは複数の離散化された表現を生成すること、ロボット掃引体積の離散化された表現を生成するために、いくつかの離散化のうちのどれを使用するかを決定すること、ロボットが動作する環境100の離散化された表現を生成すること環境100における障害物を含む、複数の離散化された表現を生成するために使用すること、複数の計画グラフのうちのどれを使用するかを決定すること、決定された複数の計画グラフおよびエッジ情報のそれぞれのセットを記憶すること、計画グラフのノードによって表される状態の間を遷移する際にロボットの少なくとも一部によって掃引される体積を表す情報を生成すること、計画グラフのエッジに関する衝突評価を実行すること、計画グラフから1つまたは複数の最適化された結果を特定すること、計画グラフのエッジに関連する掃引体積の離散化された表現とロボット102が動作する環境100内の障害物の離散化された表現との間の衝突を検査すること、最適化がロボットのための衝突のない経路を生成するかどうかを決定すること、およびロボットのためのロボットのモーションプラニングを実施することのうちの1つまたは複数を実行させる命令を含み得る。アプリケーションプログラム238は本明細書および参照により本明細書に組み込まれる参考文献に記載されるように、プロセッサ212に(センサ282を介して)知覚、計画グラフ構築、衝突検出、および経路探索の他の動作を実行させる、1つまたは複数の機械可読命令セットをさらに含み得る。
【0078】
アプリケーションプログラム238はさらに、プロセッサ212に、ロボット102が異なる寸法を有するときに対応する状態間の遷移においてロボット102によって掃引される異なる体積を表す計画グラフエッジ情報のそれぞれのセットを生成させ、計画グラフエッジ情報のそれぞれのセットに対応する計画グラフエッジ情報メモリ284に複数の計画グラフを記憶させる、1つまたは複数の機械可読命令セットを含み得る。
【0079】
アプリケーションプログラム238はさらに、ロボット102が動作する環境100の第1の離散化表現について、環境メモリ294に環境100の第1の離散化表現の少なくとも一部を供給及び格納し、計画グラフの各エッジについて、計画グラフエッジ情報メモリ284にエッジ情報のそれぞれのセットを提供及び格納し、対応する遷移がロボット102の少なくとも一部と、環境100内の障害物A112および障害物B104などの1つまたは複数の障害物の少なくとも一部との間の衝突をもたらすことになる計画グラフのエッジのいずれかを特定する、1つまたは複数の機械可読命令セットをプロセッサ212に含ませることができる。
【0080】
「環境」という用語は本例では障害物を含むロボットの現在の作業空間を指すために使用される。「タスク」という用語が本例ではロボット102がその環境内の障害物と衝突することなく、位置Aから位置Bに到達しなければならない(おそらく、何かを把持または落とす)ロボットタスクを指すために使用される。「シナリオ」という用語は本例では環境/タスクの対のクラスを指すために使用される。例えば、シナリオは「三脚テーブルを有する所与の範囲内のサイズおよび形状を有するx障害物とy障害物との間の環境内のピック・アンド・プレースタスク」とすることができる。このような基準に適合する多くの異なるタスク/環境の対が、目標の位置、障害物のサイズおよび形状に応じて存在し得る。システム200は、ネットワークインターフェース260を介して通信ネットワークを介してリンクされる1つ以上の遠隔処理装置を含んでもよい。そのような1つまたは複数のリモート処理デバイスはシステム200にロボット102が様々な異なるシナリオのタスクおよび環境の対に対して動作する環境100の表現のそれぞれの離散化を生成させる、1つまたは複数の機械可読命令セットを実行することができる。例示的な実施形態では、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含む。それぞれの離散化のボクセルは、それぞれの離散化においてサイズおよび形状のうちの少なくとも1つにおいて非均一であってもよい。また、それぞれの離散化のボクセルの不均一性のそれぞれの分布は、互いに異なっていてもよい。具体的には離散化がそれぞれのボクセルのセットを含むことができ、それぞれの離散化のうちの少なくとも2つのボクセルはそれぞれの離散化においてサイズおよび形状のうちの少なくとも1つにおいて不均一であり、それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布は互いに異なる。アプリケーションプログラム238はプロセッサ212にロボットが動作する環境100の表現の生成されたそれぞれの離散化の有効性を評価させ、特定のシナリオに対して最も有効であると評価される生成されたそれぞれの離散化を記憶させる、1つまたは複数の機械可読命令セットを含み得る。
【0081】
アプリケーションプログラム238はロボット102が実行するタスクと、ロボットが動作する環境100とのペアを分類する特定されたシナリオに基づいて、プロセッサ212に、ロボット102の1つの状態とロボット102の別の状態との間で遷移するときにロボット102が通過するそれぞれの領域を表すいくつかの掃引体積を生成するために、いくつかの離散化のうちのどれを使用するかを決定させ、計画グラフ内の複数のエッジのそれぞれについて、決定された離散化を使用してエッジのそれぞれの掃引体積を決定させる、1つまたは複数の機械可読命令セットをさらに含み得る。アプリケーションプログラム238はさらに、プロセッサ212に、特定されたシナリオに対して最も有効であると評価される、ロボット102が動作することになる環境100の表現の決定された掃引体積のそれぞれの離散化を記憶させる、1つまたは複数の機械可読命令セットを含み得る。
【0082】
アプリケーションプログラム238はさらに、ロボットが動作する環境100とロボット102が実行するタスクの対を分類する特定されたシナリオとに少なくとも部分的に基づいて、プロセッサ212に、環境100の離散化された表現を生成するためにいくつかの離散化のうちのどれを使用すべきかを決定させる、1つまたは複数の機械可読命令セットを含み得る。アプリケーションプログラム238はさらに、プロセッサ212に、環境100を感知する1つまたは複数のセンサ282によって生成されたセンサ情報を受信し、判定された離散化を使用して環境内に障害物がある場合にはそれを含む環境の離散化表現を生成させる1つまたは複数の機械可読命令セットを含み得る。決定された離散化の複数のボクセルはそれぞれの離散化内でサイズおよび形状のうちの少なくとも1つについて不均一であってもよく、決定された離散化のボクセルの不均一性のそれぞれの分布はいくつかの離散化のうちの別の1つのボクセルの不均一性の分布と異なってもよい。
【0083】
アプリケーションプログラム238はさらに、プロセッサ212に、ロボットが動作する環境における計画グラフのエッジと任意の障害物との間の複数の計画グラフについての衝突検査を実行させる、1つまたは複数の機械可読命令セットを含み得る。プロセッサ212は各計画グラフに対してこのような衝突検査を実行し、それに応じて計画グラフを一時的に更新し、最適化を実行し、更新された計画グラフからの最適化された結果が満足条件を満たすかどうか(もしあれば)を判定することができる。満足条件が満たされない場合、プロセッサ212は次の計画グラフに移動し、同じ動作を実行してもよい。満足条件が満たされる計画グラフが見つかると、プロセッサ212は、満足条件を満たす計画グラフからの最適化された結果のうちの1つによって特定される遷移をロボット102に適用する。
【0084】
アプリケーションプログラム238はさらに、プロセッサ212に、
図6~
図10に示される方法を含むが、これに限定されない、本明細書に記載される様々な他の方法を実行させる、1つまたは複数の機械可読命令セットを含み得る。
【0085】
様々な実施形態では上述の動作のうちの1つまたは複数がシステム200の1つまたは複数のリモート処理デバイスによって実行することができ、これらのデバイスはネットワークインターフェース260を介して通信ネットワークを介して、またはロボット102上に配置された1つまたは複数のプロセッサ212によってリンクされる。
【0086】
図2にはシステムメモリ214に記憶されるように示されているが、オペレーティングシステム236、アプリケーションプログラム238、他のプログラム/モジュール240、およびプログラムデータ242はディスクドライブ224の関連するコンピュータ読み取り可能媒体226上に記憶することができる。
【0087】
プロセッサ212は、1つまたは複数の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などの任意の論理処理装置とすることができる。商業的に利用可能なコンピュータシステムの非限定的な例としては米国インテルOBCorporationによって提供されるマイクロプロセッサのCeleron、Core 2、Itanium、およびXeonファミリー、米国アドバンストマイクロデバイスによって提供されるK8、K10、Bulldozer、およびBobcatシリーズマイクロプロセッサ、米国アップルコンピュータによって提供されるA5、A6、およびA7シリーズマイクロプロセッサ、米国Qualcomm、Inc.によって提供されるSnapdragonシリーズマイクロプロセッサ、米国Oracle Corp.によって提供されるSPARCシリーズマイクロプロセッサが挙げられるが、これらに限定されない。別途記載されない限り、
図2に示される種々のブロックの構成および動作は、従来の設計のものである。その結果、そのようなブロックは当業者によって理解されるように、本明細書でさらに詳細に説明される必要はない。
【0088】
図3はロボット102が動作することができる
図1の環境100の概略図であり、図示された一実施形態に従い、3D空間内の1つの位置から3D空間内の別の位置へと移行するロボット102と、環境100内の3D空間内の1つの位置から別の位置へと移行するロボットの付属肢によって掃引された体積の表現を示す。
【0089】
図3に示す例では、ロボット102が2つの付属肢、アーム106およびアーム108を有するものとして示されている。一例ではロボットが
図3に示すように、アーム106を第1の位置から第2の位置に移動させることによって、3D空間内の位置を変化させることができる。
図3に示すように、アーム106を第1の位置から第2の位置に移動させることによって、3D空間内のある位置と3D空間内の別の位置との間の移行を行う場合、ロボット102によって掃引される3D空間内の容積は領域302によって表される。しかし、
図3に示すように、このような遷移は、ロボットアーム106を領域304内の障害物A112に衝突させることになる。
【0090】
したがって、衝突の回避を容易にするために、設計時(実行時の前)に、1つまたは複数の計画グラフがシステム200によって生成され、1つの状態から別の状態への様々な遷移を行うときに、ロボット102によってどの領域が占有されるかが判定される。例えば、ロボット102のための計画グラフのエッジは、領域302に対応するロボット102によって掃引された3D空間内の体積に対応するいくつかの数のボクセル(またはボックス)を有する。計画グラフ内の対応する遷移を行うときに領域302に対応するロボット102によって掃引されたボクセルまたはボックスは、計画グラフエッジ情報メモリ284などの、計画グラフに専用のオフチップメモリ内の計画グラフのエッジに対応するものとして記憶することができる。次に、実行時に、障害物A112(および障害物B104も含む)を含む環境100を表す障害物ボクセル(またはボックス)は、占有グリッドの形でプロセッサ212aにストリーミングされ、オンチップ環境メモリ294に記憶される。システム200は(占有グリッドに基づいて)どのボクセルが占有されているかを決定し、現在占有されているボクセルと衝突する動きを使用しないことを決定する。特に、エッジの掃引体積の一部を表すエッジボクセル(またはボックス)ごとに、計画グラフエッジ情報メモリ284からストリーミングされるとき、プロセッサは、占有グリッドに基づいて、環境メモリ294に記憶されている障害ボクセル(またはボックス)のいずれかと衝突するか否かを決定する。エッジボクセル(またはボックス)が障害物ボクセル(またはボックス)のいずれかと衝突する場合、システム200は計画グラフ内のそのエッジとの衝突を判定し、計画グラフ内のそのエッジに関連するロボット102の動きを使用しないと判定する。
【0091】
例えば、
図3に示すロボットアーム106の運動を実行する前に、システム200は、計画グラフエッジメモリ284から適用可能な計画グラフの全てのエッジのエッジボクセル(又はボックス)を流し始める。各エッジについて、プロセッサ212aが各エッジ・ボクセル(又はボックス)に出会うと、任意のエッジ・ボクセル(又はボックス)が環境メモリ294に記憶された(障害物A112のためのものを含む)障害ボクセル(又はボックス)のいずれかと衝突するかどうかをチェックする。
図3に示すように、環境メモリ294に記憶された障害物A112の障害物ボクセル(またはボックス)は占有グリッドに従って同じ領域を占有するので、領域304内の任意のエッジボクセル(またはボックス)はこのような衝突を生じる。プロセッサ212aは障害物ボクセル(又はボックス)のいずれかと衝突するエッジボクセル(又はボックス)に出会うとすぐに、その後、プロセッサ212aは、計画グラフのそのエッジを使用しないことを決定する。計画グラフのエッジの処理が終了すると、プロセッサ212aは、環境メモリ294に記憶された障害物ボクセル(またはボックス)と衝突すると判定されなかった残りのエッジを使用して、ロボットを初期位置から目標位置に移動させる計画グラフ内の経路を判定する。
【0092】
システム200はまた、各計画グラフによって表される掃引体積をどのように表すか、ならびに環境100内の障害物をどのように表すかに関する決定を行うことができる。そのような決定は例えば、掃引体積をボクセルまたはボックスで表すかどうか、使用するボクセルまたはボックスの形状およびサイズ、使用するボクセルまたはボックスのサイズおよび/または形状が不均一である離散化を使用するかどうか、およびどのシナリオでボクセルまたはボックスの異なる形状および/またはサイズを使用するかなど、どのように離散化を実行すべきかに関してプロセッサ212aによって行われる決定を含み得る。様々な実施形態では計画グラフのそれぞれによって表される掃引体積をどのように表すか、ならびに環境100内の障害物をどのように表すかに関する決定を行うための上述の1つまたは複数のそのような動作はネットワークインターフェース260を介して通信ネットワークを介してリンクされるシステム200の1つまたは複数のリモート処理デバイスによって、またはロボット102上に位置する1つまたは複数のプロセッサ212によって実行され得る。
【0093】
特に、システム200は、ロボット102の作業空間をボクセルに離散化することを決定することができる(これは後でボックスにグループ化することができる)。1つの実装例は、3次元の各々において均一な量子化を実行する。しかしながら、ロボットの作業空間の異なる部分においてより小さい/より大きい非立方体形状のボクセルおよび/またはボクセルを有することが有利であり得る。例えば、一実施形態はロボット102の正面の空間においてより小さなボクセル(より細かい解像度)を使用し、ロボットが到達する最遠端のところでより大きなボクセル(より粗い解像度)を使用する。したがって、様々な実施形態は、非均一量子化および/または非立方体形状ボクセルを使用することができる。本開示はまた、システム200がボクセルサイズおよび/または形状をどのように選択するかについてのアルゴリズムを提供する。
【0094】
一実施形態では、実行時間の前に実行のためのトレーニングアルゴリズム(訓練アルゴリズム)を使用して、様々な異なるシナリオに対してどのボクセルサイズおよび形状を使用するのがよいかを決定する。システム200は、1つまたは複数のシナリオからのタスク/環境ペアの所与のまたは生成された大きなセットを使用することによってトレーニングされる。次いで、システム200は、トレーニングサンプルの大きなセットにわたって最も効果的であると評価される離散化を選択する。
【0095】
例えば、任意の所与の環境/タスク対に対して、最適な離散化(または等しく最適な複数の離散化)が存在する。システム200はT個の環境/タスクペア(ここで、Tは多数である)をテスト/トレーニングし、次いで、それぞれについて最適な離散化を記録し得る。これは多くの異なる離散化をもたらす場合があり、その各々は1つのみまたは少数の環境/タスク対に対して最適である。すべてのT個の環境/タスク対をテストした後、システムは、サンプルのセット全体にわたって最も有効であると評価される離散化を選択する。このアプローチはまた、取り扱いにくいあらゆる可能な環境/タスク対に対してあらゆる可能な離散化を試みることを含む。
【0096】
上記の問題を克服するために、システム200はシステム200が有限数の可能な離散化Gを考慮することを除いて、上記で説明したようなトレーニングを実行する。各環境/タスク対に対して、システムは、提供されたG個の離散化のうちのどれが最も効果的であると評価されるかを記録する。全てのT個の環境/タスク対を処理した後、システム200は、最も多くの環境/タスク対において最も効果的であると評価される離散化を選択する。
【0097】
一例として、ロボット102は、その前方の空間のボックスに面していてもよい。システムは6ビットが各次元における位置を記述するために使用されるように、スペースを離散化することを決定してもよい(すなわち、各軸上に26の位置があり得る)。これにより、それぞれが一意の18ビットIDを持つ218のボクセルが生成される。設計時に、システム200はあらゆるエッジの動きについて掃引体積を事前計算し、それをその掃引体積内のボクセルIDの集合として記録する。掃引体積がボクセルと部分的に交差する場合であっても、掃引体積は、その掃引体積内のボクセルIDの集合に含まれる。これが、より細かい解像度を使用することがより良い理由である。次に、実行時に、センサ282はプロセッサ212aに、ロボット102の前に何があるかを知らせるが、予め計算された掃引体積を表すボクセルよりはるかに細かい粒度であり、したがって、システム200はセンサ入力を処理し、どのボクセルが現在占有されているかをプロセッサ212aに通信する。いくつかの実施形態ではプロセッサ212aがセンサ入力を処理し、他の実施形態ではセンサ入力を処理してプロセッサ212aに通信するセンサ282のプロセッサなどの別個のプロセッサがある。プロセッサ212aは環境メモリ294に記憶されている情報に基づいて現在環境にあるボクセルまたはボックスを、計画グラフエッジ情報メモリ284に記憶されている計画グラフエッジ情報の各エッジに対して記載されているボクセルまたはボックスと比較し、現在どのエッジが衝突しているかを決定する。そのような実施形態では、比較を可能にするために、実行時と同じ離散化が設計時に使用されることが重要である。
【0098】
システム200が非均一離散化を使用することを選択するとき、システム200は18ビットのボクセルIDおよび218ボクセルを依然として使用してもよいが、ボクセルはキューブである必要はない(またはそれらは同じサイズでないキューブであってもよい)。この場合も、この実施形態では、システムが実行時と同じ離散化を設計時に使用することが重要である。非均一離散化を使用する場合、システム200は設計時および実行時に使用され、最も効果的であると評価されるボクセルサイズおよび形状をシステムが選択するように、上述のようなトレーニングを使用して、各ボクセルのサイズおよび形状が何であるかを選択する。そのようなトレーニングで使用される評価基準は解決することができるタスクの割合(例えば、システム200が、ロボット102の目標を達成するための何らかの衝突のない経路を見出すことができる)および見出される経路の質に関する基準を含んでもよい。
【0099】
図4Aは1つの例示的実施形態に従った
図1および
図3のロボット102のための例示的ロボットの計画グラフ400のエッジを含むモーションプラニンググラフ400であり、エッジについて、ロボット102と環境100内の1つ以上の障害物との間の衝突をもたらすであろう対応する遷移が決定されている。
図4Bは1つの例示としての実施形態に従った例示としてのロボットのモーションプラニンググラフ400であり、対応する遷移がロボット102と環境100内の1つ以上の障害物との間の衝突をもたらすであろうと決定された計画グラフ400のエッジが除去されている。計画グラフ400の各ノードはロボット102の状態を表し、計画グラフ400の各エッジは、ロボット102のある状態から別の状態への遷移を表す。例えば、エッジ410aは、ノード408aによって表されるロボット102の状態とノード408bによって表されるロボット102の状態との間の遷移を表す。エッジ410iは、ノード408cによって表されるロボット102の状態とノード408dによって表されるロボット102の状態との間の遷移を表す。
【0100】
ロボット102のための計画グラフ400の各エッジは計画グラフ400において、そのエッジによって表されるある状態から別の状態への遷移を行うときに、ロボット102によって掃引される3D空間内の体積に対応するいくつかの数のボクセル(またはボックス)を有する。システム200はロボット102の寸法の変化に対応するために、異なる計画グラフを交換することができるように、このような情報は、オフチップ計画グラフエッジ情報メモリ284に計画グラフエッジ情報として記憶され得る。実行時に現在の環境を表すセンサ282から受け取った情報を使用して、システム200はどのボクセル(またはボックス)が現在占有されているかを判定し、システム200は、現在占有されているボクセル(またはボックス)と衝突する動きを使用しないと判定する。
【0101】
いくつかの実施形態では、システムが現在の環境(およびその中の障害物)を表すセンサ282から受信され、オンチップ環境メモリ294に記憶された情報を、計画グラフエッジ情報メモリ284に記憶された計画グラフエッジ情報と実行時に比較することによって、占有ボクセル(またはボックス)と衝突するいかなる動きも使用しないことを決定する。この比較に基づいて、システム200は、どの計画グラフエッジがロボット102と環境100内の1つまたは複数の障害物との間の衝突をもたらす遷移(したがって、どの対応する動き)を表すかを決定する。一例として、
図4Aは、エッジ410b、410c、410d、410e、410f、410g、410h、410i、410j、410k、および410lがロボット102と環境100内の1つまたは複数の障害物との間の衝突をもたらす遷移(したがって、対応する動き)を表すと判定されたことを示す。
【0102】
例えば、ロボット102がノード408aによって表される状態からノード408dによって表される状態に移動するという目標を達成するために、ロボット102は、ロボット102と環境100内の1つまたは複数の障害物との間の衝突をもたらす遷移を表すと判定されたエッジ410b、410c、410d、410e、410f、410g、410h、410i、410j、410kおよび410lによって表される遷移を回避しなければならない。したがって、
図4Bは、環境100内の1つまたは複数の障害物と衝突することなく、ノード408aによって表される状態からノード408dによって表される状態に移動するという目標を達成するためにロボット102が従うことができる、システム200によって特定される計画グラフ400内の、そのようなエッジが除去された計画グラフおよび潜在的経路416を示す。
【0103】
図5は、1つの例示としての実施形態に従った、特定の状況に従った異なる計画グラフのエッジ情報を提供することによって、ロボットのモーションプラニングを容易にするためのロボット制御システム200における動作の方法500を示すフロー図である。ロボット制御システム200における動作の方法500は特定の状況に応じて異なる計画グラフのエッジ情報を提供することによって、ロボットのモーションプラニングを容易にするために、502で開始する。
【0104】
504において、環境内で動作するであろうロボット102に対して、システム200は、複数の計画グラフを決定する。各計画グラフはそれぞれ、複数のエッジによって接続された複数のノードを含み、各ノードは、ロボット102のそれぞれの状態を特徴付ける変数を、暗黙的または明示的に表す。各エッジは、ロボット102のそれぞれの対の状態間の遷移を表す。それぞれの状態対は、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノード対のそれぞれの1つによって表される。
【0105】
506において、各計画グラフのエッジのうちの少なくとも2つ以上について、システム200はそれぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、ロボット102の少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成する。少なくとも1つの実施形態では、システム200が実行時前にそれぞれのエッジ情報のセットを生成する。
【0106】
508で、システム200は、複数の計画グラフおよびエッジ情報のセットを少なくとも1つの非一時的プロセッサ可読記憶装置に記憶する。
【0107】
510において、第1の物理的寸法のセットを有するロボット102の少なくとも一部に基づいて、システム200は、計画グラフのうちの第1のもののエッジ情報のセットを少なくとも1つのプロセッサに提供する。
【0108】
512において、第2の時間における第2のセットの物理的寸法を有するロボット102の少なくとも一部に基づいて、システム200は、計画グラフのうちの第2のもののエッジ情報の組(又は、セット)を少なくとも1つのプロセッサに提供する。第2の物理的寸法のセットにおける少なくとも1つの寸法は、第1のセットの寸法のうちの対応する1つと異なる。特定の状況に応じて異なる計画グラフのエッジ情報を提供することによってロボットのモーションプラニングを容易にするロボット制御システム200における動作の方法500は、514で終了する。
【0109】
ロボット102は、ロボット102が動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有することができる。ロボット102はまた、第1の付属肢に取り付けられた第1のエンドエフェクタを有し得る。第1のエンドエフェクタは少なくとも第1のエンドエフェクタ配置と第2のエンドエフェクタ配置(例えば、把持している配置と把持していない配置)との間で移動するように選択的に動作可能である。システム200は、第1の付属肢に取り付けられた第1のエンドエフェクタが第1のエンドエフェクタ配置にあると判定することができる。例えば、エンドエフェクタは、把持されていない位置または開いた位置にあってもよい。これは、第1のエンドエフェクタ配置の一例である。把持位置にあるエンドエフェクタは、第2のエンドエフェクタ配置の一例である。第1の物理的寸法のセットは、第1のエンドエフェクタ配置における第1のエンドエフェクタの寸法のセットを表す。特に、第1の物理的寸法のセットは、エンドエフェクタが把握されていない位置にあるときのロボットの物理的寸法である。そのような場合、少なくとも1つのプロセッサに計画グラフのうちの第1のもののためのエッジ情報のセットを提供することは、第1の付属肢に取り付けられた第1のエンドエフェクタが第1のエンドエフェクタ配置にある(すなわち、把持されていない位置または開放位置にある)という決定に応答する。
【0110】
また、システム200は、第1の付属肢に取り付けられた第1のエンドエフェクタが第2のエンドエフェクタ配置にあると判定することができる。例えば、エンドエフェクタは、把持位置または閉鎖位置にあってもよい。これは、第2のエンドエフェクタ配置の一例である。把持されていない又は開いた位置にあるエンドエフェクタは、第1のエンドエフェクタ配置の一例である。第1の付属肢が第2のエンドエフェクタ配置(すなわち、把持位置または閉鎖位置)にある場合、第2の物理的寸法のセットは、第2のエンドエフェクタ配置における第1のエンドエフェクタの寸法のセットを表す。特に、第1の物理的寸法のセットは、エンドエフェクタが把持位置にあるときのロボットの物理的寸法である。次いで、少なくとも1つのプロセッサに計画グラフのうちの第2のもののためのエッジ情報のセットを提供することは、第1の付属肢に取り付けられた第1のエンドエフェクタが第2のエンドエフェクタ配置にある(すなわち、把持されていない位置または開放位置にある)という決定に応答する。
【0111】
いくつかの実施形態では、ロボット102がロボット102が動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、第1のエンドエフェクタが第1の付属肢に取り付けられる。第1のエンドエフェクタは、少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能である。把持している配置において第1のエンドエフェクタによって占められる容積のサイズまたは形状のうちの少なくとも1つは、把持していない配置において第1のエンドエフェクタによって占められる容積のサイズまたは形状のうちの少なくとも1つとは異なる。そのような場合、システム200は、第1の付属肢に取り付けられた第1のエンドエフェクタが把持していない配置にあると判定することができる。次いで、少なくとも1つのプロセッサに計画グラフのうちの第1のもののためのエッジ情報のセットを提供することは、第1の付属肢に取り付けられた第1のエンドエフェクタが把持していない配置にあるという決定に応答する。
【0112】
図6は図示された一実施形態によるロボット制御システム200の動作方法600を示す流れ図であり、対応する遷移が衝突をもたらすであろう計画グラフのエッジを特定することによって、ロボットのモーションプラニングを容易し、この計画グラフは、その各々がロボットの物理的寸法の異なるセットに関連付けられたオフチップメモリに記憶された複数の計画グラフのうちの1つである。対応する遷移が衝突をもたらすであろう計画グラフのエッジを602で特定することによってロボットのモーションプラニングを容易にするロボット制御システム200における動作方法600は602で開始する。
【0113】
604において、少なくともロボット102が動作する環境の第1の離散化表現に対して、システム200は、環境の第1の離散化表現の少なくとも一部を少なくとも1つのプロセッサに供給する。環境は、1つ以上の障害物によって占有される。
【0114】
606において、第1の計画グラフの各エッジに対して、システム200は、少なくとも1つのプロセッサにそれぞれのエッジ情報のセットを提供する。第1の計画グラフは、プロセッサに対して相対的なオフチップメモリに記憶された複数の計画グラフの1つである。複数の計画グラフの各計画グラフは、第1ロボットの物理的次元の異なるセットに関連付けられる。エッジ情報のそれぞれのセットはロボット102の一対の状態の間を遷移する際に、ロボット102の少なくとも一部によって掃引される体積を表す。ロボット102の一対の状態は、第1の計画グラフの一対のノードのそれぞれによって表される。それぞれのノード対のノードは第1の計画グラフのそれぞれのエッジによって結合され、それぞれのエッジはロボット102のそれぞれの状態対の間の遷移を表す。
【0115】
608において、システム200は、対応する遷移がロボット102の少なくとも一部と、環境内の1つ以上の障害物のうちの少なくとも1つの少なくとも一部との間の衝突をもたらすであろう第1の計画グラフのエッジのうちのいずれかを特定する。対応する遷移が610で衝突をもたらすであろう計画グラフのエッジを特定することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法600は610で終了する。
【0116】
図7は、1つの例示としての実施形態に従った、ロボット102が動作する環境の表現の生成された不均一な離散化の有効性を評価することによって、ロボットのモーションプラニングを容易にするためのロボット制御システム200における動作の方法700を示すフロー図である。ロボット102が動作する環境の表現の生成された非均一な離散化の有効性を評価することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作方法700は、702で開始する。
【0117】
704において、複数の反復のそれぞれに対して、システム200は、ロボット102が動作する環境の表現のそれぞれの離散化を生成する。システム200は、少なくとも複数のタスクと環境の組のセットを含む第1のシナリオと、少なくとも第1のシナリオのタスクと環境の組の各々に対して、これを実行する。それぞれの離散化のうちの少なくとも2つは、ボクセルのそれぞれのセットを含む。それぞれの離散化のうちの少なくとも2つのボクセルは、それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて非均一である。それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布もまた、互いに異なる。
【0118】
706において、システム200は、生成されたロボットが動作する環境の表現のそれぞれの離散化の有効性を評価する。システム200は、少なくとも複数のタスクと環境の組のセットを含む第1のシナリオと、少なくとも第1のシナリオのタスクと環境の組の各々に対して、これを実行する。
【0119】
708において、システムは、処理すべきタスクおよび環境のさらなるペアがあるか否かを決定する。システム200が現在のシナリオについて処理すべきタスクおよび環境のさらなるペアが存在すると判定した場合、方法700は704に戻り、シナリオに含まれるタスクおよび環境のペアのセットについてそれぞれの離散化を生成し続け、706でそれらの有効性を評価する。システム200が、現在のシナリオについて処理すべきタスクおよび環境のさらなる対が存在しないと判定した場合、方法700は710に続く。
【0120】
710において、システム200は、少なくとも第1のシナリオに対して最も有効であると評価された、生成されたロボットが動作する環境の表現の少なくともそれぞれの離散化を、少なくとも1つの非一時的プロセッサ可読媒体に格納する。
【0121】
712で、システム200は、処理すべきさらなるシナリオがあるかどうかを判定する。システム200が、処理すべきさらなるシナリオがあると判定した場合、方法700は704に戻り、706において、次のシナリオに含まれるタスクおよび環境のペアのセットに関するそれぞれの離散化を生成し続け、それらの有効性を評価する。システム200が処理すべきさらなるシナリオがないと判断した場合、ロボット102が動作する環境の表現の生成された非均一離散化の有効性を評価することによってロボットのモーションプラニングを容易化するためのロボット制御システム200における動作方法700は、714で終了する。いくつかの実施形態では、複数のシナリオに関連付けられた1つの計画グラフがあってもよい。そのような実施形態では、システム200がそのような1つの計画グラフに関連付けられたタスクおよび環境のペアのセットについてのそれぞれの離散化を生成することができる。
図8は、1つの例示としての実施形態に従った、ロボット102が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定することによってロボットのモーションプラニングを容易にするためのロボット制御システム200における動作の方法800を示すフロー図である。ロボット102が通過する各領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちの何れを使用すべきかを決定することによってロボットのモーションプラニングを容易にするロボット制御システム200における動作の方法800は802で開始する。
【0122】
804において、少なくとも部分的には、ロボット102が実行するであろうタスクの対を分類する特定されたシナリオと、ロボットが動作するであろう環境とに基づいて、システム200はロボット102の1つの状態とロボット102の別の状態との間を遷移する際に、ロボット102の少なくとも一部が通過するであろうそれぞれの領域を表すいくつかの掃引体積を生成するために使用するいくつかの離散化のうちのどれを使用するかを決定する。この決定は、特定されたシナリオに基づいて少なくとも2つの離散化の間で選択することを含み得る。そのような場合、それぞれの離散化のうちの少なくとも2つのボクセルは、それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて非均一である。また、それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布は互いに異なる。
【0123】
806において、計画グラフ内の複数のエッジの各々に対して、システム200は、決定された離散化を用いてエッジのそれぞれの掃引体積を決定する。計画グラフは、複数のノードおよび複数のエッジを含む。各ノードは、ロボットの複数の状態のそれぞれ1つを表す。各エッジは一対のノードを結合し、エッジによって結合されたそれぞれのノードによって表される状態間のロボット102による遷移を表す。
【0124】
808において、システム200は少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも特定されたシナリオに対して最も有効であると評価される、ロボット102が動作することになる環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを格納する。ロボット102が通過するそれぞれの領域を表すいくつかの(又は、多数の)掃引体積を生成するために使用されるいくつかの離散化のどれを使用するかを決定することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法800は810で終了する。いくつかの実施形態では、計画グラフが複数のシナリオに関連付けられてもよい。
図9は、1つの例示としての実施形態に従った、決定された離散化を用いてロボット102が動作する環境の離散化された表現を生成することによってロボットのモーションプラニングを容易にするためのロボット制御システム200における動作の方法900を示すフロー図である。決定された離散化を用いてロボット102が動作する環境の離散化された表現を生成することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法900は902で開始する
【0125】
904において、少なくとも部分的にはロボット102が実行するであろうタスクの対を分類する特定されたシナリオと、ロボット102が動作する環境とに基づいて、システム200は環境(環境内に障害物が存在する場合にはその障害物を含む)の離散化された表現を生成するためのいくつかの離散化のうちのどれを使用するかを決定する。
【0126】
906において、システム200は、環境を感知する1つまたは複数のセンサ282によって生成されたセンサ情報を受信する。センサ情報は、環境内に障害物が存在する場合にはその障害物を含む環境を表す。
【0127】
908で、システム200は、決定された離散化を使用して、環境内に障害物がある場合にはそれを含む環境の離散化表現を生成する。決定された離散化の複数のボクセルは、それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて非均一である。決定された離散化のボクセルの不均一性のそれぞれの分布は、いくつかの離散化のうちの別の1つのボクセルの分布とは異なる。システムは、掃引体積の離散化表現を生成するために使用されるボクセルサイズおよび形状の分布に一致(又は、適合)するボクセルサイズおよび形状の分布を使用して、環境の離散化表現を生成する。ロボット102が動作する環境の離散化された表現を生成することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法900は、910で終了する。
【0128】
図10は、1つの例示としての実施形態に従った、計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによって、ロボットのモーションプラニングを容易化するためのロボット制御システム200における動作の方法1000を示すフロー図である。方法1000は、複数の計画グラフを使用する。各計画グラフは、それぞれ、複数のエッジによって接続された複数のノードを含む。各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは、第1のロボットの状態のそれぞれの対の間の遷移を表す。それぞれの状態のペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される。計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法1000は1002で開始する。
【0129】
1004において、複数の計画グラフの第1の計画グラフ、および第1の計画グラフの複数のエッジのそれぞれに対して、システム200は、エッジに関連する掃引された体積の離散化された表現と、ロボットが動作する環境内の任意の障害物の離散化された表現との間の衝突についての衝突検査を実行する。
【0130】
1006において、システム200は、衝突検査に基づいて第1の計画グラフを更新する。
【0131】
1008において、システム200は更新された第1の計画グラフの最適化を実行して、更新された第1の計画グラフから、もしあれば、1つ以上の最適化された結果を特定する。
【0132】
1010において、システム200は、更新された第1の計画グラフからの1つまたは複数の最適化された結果がもしあれば、満足条件を満たすかどうかを判定する。
【0133】
1012において、システム200が、更新された第1の計画グラフからの1つまたは複数の最適化された結果(もしあれば)が満足条件を満たさなかったと判定した場合、方法1000は1014に続く。更新された第1の計画グラフからの1つまたは複数の最適化された結果(もしあれば)が満足条件を満たすとシステム200が判定した場合、方法1000は1020で終了する。更新された第1の計画グラフからの1つ以上の最適化された結果(もしあれば)が満足条件を満たしていると判断することに応答して、システム200は更新された第1の計画グラフからの1つ以上の最適化された結果のうちの1つによって特定される遷移をロボット102に適用することができる(例えば、ロボットを移動させる)。
【0134】
1014において、更新された第1の計画グラフからの1つまたは複数の最適化された結果(もしあれば)が満足条件を満たさなかったとシステム200が判定したことに応答して、システム200は、第2の計画グラフの複数のエッジのそれぞれについて、エッジに関連付けられた掃引体積の離散化された表現と、ロボット102が動作する環境内の任意の障害物の離散化された表現との間の衝突検査を実行する。
【0135】
1016において、システム200は、衝突検査に基づいて第2の計画グラフを更新する。
【0136】
1018において、システム200は更新された第2の計画グラフの最適化を実行して、更新された第2の計画グラフから、もしあれば、1つ以上の最適化された結果を特定する。計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法1000は1020で終了する。
【0137】
システム200は、更新された第2の計画グラフからの1つまたは複数の最適化された結果がもしあれば、満足条件を満たすかどうかを判定することもできる。1つ以上の最適化された結果がもしあれば、更新された第2の計画グラフから満足条件を満たすと判断することに応じて、システム200は更新された第2の計画グラフからの1つ以上の最適化された結果のうちの1つによって特定される遷移をロボット102に適用することができる(例えば、ロボットを動かす)。
【0138】
さらに、更新された第2の計画グラフからの1つまたは複数の最適化された結果(もしあれば)が満足条件を満たさないと判定することに応答して、システムは衝突検査を繰り返し、計画グラフを更新し、システムが満足条件を満たす計画グラフを特定するまで、後続の計画グラフに対して最適化を実行することができる。次に、システム200は、特定された計画グラフからの1つ以上の最適化された結果のうちの1つによって特定された遷移をロボット102に適用することができる。いくつかの実施形態では更新された計画グラフからの最適化された結果がそのようなプロセスにおいて満足条件を満たすかどうかを判定することは最適化が衝突のない経路を生成するかどうかを判定することを含み得る。このような無衝突経路は、環境内の全ての障害物との衝突を回避する経路である。
【0139】
上記の詳細説明においては、ブロック図、模式図及び実施例を用いて、多様な装置及び/又は方法の実施形態について記載している。これらのブロックダイヤグラム、概略図及び実施例は1つまたは2つ以上の機能及び/または動作を含んでいるが、当業者には明らかなように、これらのブロックダイヤグラム、流れ図及び実施例におけるそれぞれの機能及び/または動作は個々に及び/または一括して、多様なハードウェア、ソフトウェア、ファームウェア、または事実上任意のこれらの組み合わせによって実装することができる。一実施形態では、本主題がブール回路、特定用途向け集積回路(ASIC)および/またはFPGAを介して実装され得る。しかしながら、本明細書に開示された実施形態は全体的にまたは部分的に、標準的な集積回路における様々な異なる実装において、1つまたは複数のコンピュータ上で実行される1つまたは複数のコンピュータプログラムとして(例えば、1つまたは複数のコンピュータシステム上で実行される1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ(例えば、マイクロプロセッサ)上で実行される1つまたは複数のプログラムとして、ファームウェアとして、またはそれらの事実上任意の組合せとして実装することができ、回路を設計すること、および/またはソフトウェアおよび/またはファームウェアのためのコードを書き込むことは、本開示に照らして当業者の技術の範囲内で十分にあることを、当業者は認識するであろう。
【0140】
当業者は本明細書に記載された方法またはアルゴリズムの多くが、追加の動作を使用し、いくつかの動作を省略し、および/または指定された順序とは異なる順序で動作を実行し得ることを認識するであろう。
【0141】
さらに、当業者は、本明細書で教示されるメカニズムが様々な形態でプログラム製品として配布されることが可能であり、例示的な実施形態が配布を実際に実行するために使用される信号搬送媒体の特定のタイプにかかわらず、等しく適用されることを理解するであろう。信号担持媒体の例にはハードディスクドライブ、CDROM、およびコンピュータメモリなどの記録可能タイプの媒体が含まれるが、これらに限定されない。
【0142】
上記の種々の実施形態は、更なる実施形態を提供するように組み合わされることが可能である。本願と同じ譲受人に譲渡された米国特許出願公開、米国特許出願、外国特許、および本明細書に言及され、かつ/または「MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS(自律走行車のモーションプラニングと再構成可能なモーションプラニングプロセッサー)」という名称の平成29年6月9日に出願された国際特許出願第PCT/US2017/036880号、「SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME(特殊なロボット運動計画ハードウェアとその作成および使用方法)」という名称の国際特許出願公開第016/122840号、および米国仮特許出願第MOTION PLANNING OF A ROBOT STORING A DISCRETIZED ENVIRONMENT ON OR MORE PROCESSORS AND IMPROVED OPERATION OF SAME(離散化された環境を1つ以上のプロセッサに格納するロボットのモーションプラニングとその改善された操作)」という名称の2018年2月6日出願の米国特許出願番号第62/626,939は、その全体が参照により本明細書に組み込まれる。上記の詳細説明に照らして、上記の及び他の変形がそれらの実施形態に対して行われることが可能である。一般に、以下の特許請求の範囲において、使用される用語は特許請求の範囲を、明細書および特許請求の範囲に開示される特定の実施形態に限定するように解釈されるべきではなく、そのような特許請求の範囲が権利を有する均等物の全範囲とともに、すべての可能な実施形態を含むように解釈されるべきである。したがって、特許請求の範囲は、本開示によって限定されない。
【0143】
下記は、本願の出願当初に記載の発明である。
<請求項1>
ロボット制御システムにおける動作方法であって、
環境内で動作する第1のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、
各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップと、
第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップを有し、
第2の物理的寸法のセットのうちの少なくとも1つの寸法が前記第1のセットの前記寸法のうちの対応する1つと相違する、方法。
<請求項2>
前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、前記第1のロボットは前記第1の付属肢に取り付けられた第1のエンドエフェクタを有し、前記第1のエンドエフェクタは、少なくとも第1のエンドエフェクタ配置と第2のエンドエフェクタ配置との間で移動するように選択的に動作可能であり、
前記方法は、
前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが第1のエンドエフェクタ配置にあることを決定するステップをさらに有し、
前記第1の物理的寸法のセットは前記第1のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、
少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第1のエンドエフェクタ配置にあることの決定に応答する、請求項1に記載の方法。
<請求項3>
前記第1の付属肢に取り付けられた第1のエンドエフェクタが第2のエンドエフェクタ配置にあると判定するステップをさらに有し、
前記第2の物理的寸法のセットは前記第2のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、
少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第2のエンドエフェクタ配置にあることの決定に応答する、請求項2に記載の方法。
<請求項4>
前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを有し、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは、前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、
前記方法は、
前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあるという決定に応答する、該ステップと、
前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあるという決定に応答する、該ステップ
をさらに有する、請求項1に記載の方法。
<請求項5>
前記第1のロボットは、前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、
前記方法は、
前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有すると決定するステップをさらに有し、
前記第1の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第1のエンドエフェクタの寸法のセットを表し、
少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有するという決定に応答する、請求項1に記載の方法。
<請求項6>
前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有すると決定するステップをさらに有し、
前記第2のエンドエフェクタが前記第1のエンドエフェクタとは少なくとも1つの形状またはサイズで相違し、
前記第2の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第2のエンドエフェクタの寸法のセットを表し、
少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップが、前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有するという決定に応答する、請求項5記載の方法。
<請求項7>
前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し(例えば、例えば、燃料の消費によって重量が変化し得るために速度が変化し、移動距離が変化し得る)、
前記方法は、
前記自律車両または半自律車両のうちの少なくとも1つが第1の物理的状態にあると判定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記自律車両または半自律車両のうちの少なくとも1つが前記第1の物理的状態にあるという決定に応答する、該ステップと、
前記自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあるという決定に応答する、該ステップ
をさらに有する、請求項1に記載の方法。
<請求項8>
少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を前記少なくとも1つのプロセッサの複数の回路の各々に適用して、どのエッジが前記ロボットが動作する環境内の障害物によって占有される単位体積と衝突するかを決定するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項9>
少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を、前記少なくとも1つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項10>
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを生成するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項11>
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を2つ以上のボクセルをカバーする体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項12>
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズム(直方体)で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項13>
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズム(直方体)で表すそれぞれのエッジ情報のセットを生成するステップは、前記矩形プリズムの各々に対して、それぞれの矩形プリズムの体積を完全に規定する三次元座標のセットを格納するステップを含む、請求項12に記載の方法。
<請求項14>
複数の計画グラフを決定するステップと、それぞれのエッジ情報のセットを生成するステップが、実行前期間中に実行される、請求項1~7のいずれかに記載の方法。
<請求項15>
少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、実行時期間中に実行される、請求項1~7のいずれかに記載の方法。
<請求項16>
プロセッサベースのロボット制御システムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
環境内で動作する第1のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、
各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップと、
第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する、少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記第2の物理的寸法のセットのうちの少なくとも1つの寸法が前記第1のセットの前記寸法のうちの対応する1つと相違する、プロセッサベースのロボット制御システム。
<請求項17>
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項2から15の方法のいずれかを実行させる、請求項16に記載のプロセッサベースのシステム。
<請求項18>
ロボット制御システムにおける動作方法であって、
少なくとも第1のロボットが動作する1つ以上の障害物によって占有される環境の第1の離散化された表現に対して、少なくとも1つのプロセッサに前記環境の第1の離散化された表現の少なくとも一部を供給するステップと、
前記少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記複数の計画グラフの各計画グラフが前記第1のロボットの異なる物理的寸法のセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間を遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは、前記第1の計画グラフのノードのペアのそれぞれによって表され、
前記ノードのペアのそれぞれは前記第1の計画グラフのそれぞれのエッジによって接続され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表す、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と前記環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第1の計画グラフのエッジのいずれかを特定するステップを有する、方法。
<請求項19>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、前記エッジのうちの1つについての前記エッジ情報を、前記少なくとも1つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含む、請求項18に記載の方法。
<請求項20>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも1つのプロセッサの複数の回路のそれぞれに前記それぞれのエッジについての前記エッジ情報を並列に適用するステップを含む、請求項18に記載の方法。
<請求項21>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを適用するステップを含む、請求項18に記載の方法。
<請求項22>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を体積単位で表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ2つ以上のボクセルをカバーする、請求項18に記載の方法。
<請求項23>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ2つ以上のボクセルをカバーする、請求項18に記載の方法。
<請求項24>
前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップが、前記矩形プリズムのそれぞれについて、それぞれの前記矩形プリズムの体積を完全に定義する3次元座標のペアを格納するステップを含む、請求項23に記載の方法。
<請求項25>
前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップであって、前記第2の配置は前記第1の配置とは相違する、該ステップと、
複数の前記計画グラフの第2の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に、前記第1のロボットの少なくとも一部により掃引される体積を表し、前記第1のロボットの状態のペアは前記第2の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのそれぞれのペアは前記第2の計画グラフのそれぞれのエッジによって結合され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、前記第2の計画グラフは第1の計画グラフと相違する、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第2の計画グラフの前記エッジのいずれかを特定するステップ
を有する、請求項18の方法。
<請求項26>
前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢を含み、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップが、第2のエンドエフェクタが第1のエンドエフェクタの代わりに前記第1の付属肢に取り付けられるかまたは取り付けられていることを決定するステップを含む、請求項25に記載の方法。
<請求項27>
前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを含み、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップを含む、請求項25に記載の方法。
<請求項28>
前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップは、前記第1のエンドエフェクタが把持していない配置と把持している配置との間で遷移しているかまたは遷移したことを決定するステップを含む、請求項27に記載の方法。
<請求項29>
前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し、
前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記自律車両または半自律車両のうちの少なくとも1つが、前記自律車両または半自律車両のうちの少なくとも1つの前記第1及び第2の配置間で遷移しているかまたは遷移したことを決定するステップを含む、請求項25に記載の方法。
<請求項30>
前記少なくとも1つのプロセッサに前記第1の計画グラフの各エッジのエッジ情報のそれぞれのセットを提供するステップは実行期間中に前記エッジ情報のそれぞれのセットを非一時的記憶装置から取り出すステップを含み、前記エッジ情報のそれぞれのセットは実行前期間中に前記非一時的記憶装置に記憶される、請求項18から29のいずれかに記載の方法。
<請求項31>
前記少なくとも1つのプロセッサはフィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つのプロセッサの複数の回路のそれぞれに前記エッジのうちの1つのためのエッジ情報を適用するステップを含む、請求項30に記載の方法。
<請求項32>
前記少なくとも1つのプロセッサ上のメモリに前記環境の第1の離散化された表現を記憶するステップと、
前記少なくとも1つのプロセッサ上のメモリに前記環境の第1の離散化された表現を記憶した後、前記少なくとも1つのプロセッサとは別個の記憶装置から前記少なくとも1つのプロセッサによって前記エッジ情報のセットを受信するステップ
を含む、請求項18記載の方法
<請求項33>
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
少なくとも第1のロボットが動作する1つまたは複数の障害物によって占有される環境の第1の離散化された表現に対して、環境の第1の離散化された表現の少なくとも一部を少なくとも1つのプロセッサに供給するステップと、
少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、エッジ情報のそれぞれのセットを少なくとも1つのプロセッサに提供するステップであって、前記複数の計画グラフのうちの第1の計画グラフの各エッジは第1のロボットの物理的寸法の異なるセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは前記第1の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのペアのそれぞれは前記第1の計画グラフのエッジのそれぞれにより結合され、前記エッジのそれぞれは前記第1のロボットの状態のペアのそれぞれの間の遷移を表す、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と、前記環境内の1つまたは複数の障害物の少なくとも一部の間の衝突をもたらすことになる前記第1の計画グラフの前記エッジのいずれかを特定するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有するプロセッサベースのロボット制御システム。
<請求項34>
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項19から32の方法のいずれかを実行させる、請求項33に記載のプロセッサベースのシステム。
<請求項35>
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法であって、前記方法は、
タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、
前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、
複数の反復のそれぞれについて、
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、
少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを有する、方法。
<請求項36>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの体積のそれぞれと比較して比較的小さい体積を有する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項37>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項38>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第3の体積が第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項39>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数の前記ボクセルが第3の体積を有し、前記第2の体積は前記第1の体積とは相違し、前記第3の体積が前記第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項40>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項41>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルの各々の形状が、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルの各々の形状と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項42>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項43>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第3の形状が前記第2の形状と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項44>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状が前記第1の形状と相違し、前記第3の形状が前記第2の形状と相違する、第1の離散化を生成するステップを含む、請求項35に記載の方法。
<請求項45>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した複数の前記ボクセルが第3の形状を有し、前記第2の形状は前記第1の形状とは相違し、前記第3の形状は第2の形状とは相違する、第1の離散化を生成するステップを含む、請求項35に記載の方法。
<請求項46>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項47>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方とは相違し、形状のうちの少なくとも1つが非立方体である、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項48>
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突のない経路をもたらす可能性が最も高いかを決定するステップを含む、請求項35に記載の方法。
<請求項49>
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突の確率が最も低い経路をもたらす可能性が最も高いかを決定するステップを含む、請求項35に記載の方法。
<請求項50>
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、最も低コストの衝突のない経路をもたらす可能性が最も高いかを決定するステップを含む、請求項35に記載の方法。
<請求項51>
少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップは、複数のシナリオの各々に対して少なくとも1つの生成されたそれぞれの離散化を、生成されたそれぞれの離散化のうちのどれが複数のシナリオの各々に対して使用されるべきかの指示と共に記憶するステップを含む、請求項35に記載の方法。
<請求項52>
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、
前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、
複数の反復のそれぞれについて、
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、
少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する、少なくとも1つの非一時的プロセッサ可読媒体
を有するモーションプラニングを容易にするためのプロセッサベースのシステム。
<請求項53>
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項36から51の方法のいずれかを実行させる、請求項52に記載のプロセッサベースのシステム。
<請求項54>
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、
少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップ
を有するロボットのモーションプラニングを容易にするためのシステムにおける動作方法。
<請求項55>
いくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップは、特定されたシナリオに基づいて少なくとも2つの離散化の中から選択するステップを含み、それぞれの離散化のうちの少なくとも2つのボクセルはそれぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布は互いに相違する、請求項54に記載の方法。
<請求項56>
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの体積と比較して比較的小さな体積を有するような前記決定された離散化を用いて前記エッジのそれぞれの掃引された体積を決定するステップを含む、請求項54に記載の方法。
<請求項57>
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積とは異なるような前記決定された離散化を用いて、前記エッジのそれぞれの掃引された体積を決定するステップを含む、請求項54に記載の方法。
<請求項58>
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第3の体積が前記第2の体積とは異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含む、請求項54に記載の方法。
<請求項59>
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含む、請求項54に記載の方法。
<請求項60>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを有する、請求項54に記載の方法。
<請求項61>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における前記複数のボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の前記複数のボクセルの各々の形状と相違する、該ステップを含む、請求項54に記載の方法。
<請求項62>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記第2の体積が前記第1の体積と相違する、該ステップを有する、請求項54に記載の方法。
<請求項63>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第3の形状が前記第2の形状とは相違する、該ステップを含む、請求項54に記載の方法。
<請求項64>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状が前記第1の形状とは相違し、前記第3の形状が前記第2の形状とは相違する、該ステップを含む、請求項54に記載の方法。
<請求項65>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを有する、請求項54に記載の方法。
<請求項66>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における前記複数のボクセルの各々の形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の前記複数のボクセルの各々の形状および体積の両方と相違する、請求項54に記載の方法。
<請求項67>
前記特定されたシナリオを受信するステップをさらに含む、請求項54に記載の方法。
<請求項68>
少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップをさらに有し、
前記エッジ情報のそれぞれのセットは、前記ロボットの1つのペアの状態間の遷移の際に前記第1のロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表す、請求項54記載の方法
<請求項69>
前記少なくとも1つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、
前記フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つのプロセッサの複数の回路のそれぞれに、前記ロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表すそれぞれのエッジ情報のセットを適用して、前記ロボットの1つのペアの状態間を遷移させるステップをさらに有する、請求項54から68のいずれかに記載の方法
<請求項70>
モーションプラニングを容易にするためのプロセッサベースのシステムであって、前記システムは、
少なくとも1つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、前記エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、
少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップ
を実行させる、プロセッサベースのシステム。
<請求項71>
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項55~69の方法のいずれかを実行させる、請求項70に記載のプロセッサベースのシステム。
<請求項72>
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法であって、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップと、
環境を感知する1つまたは複数のセンサによって生成されたセンサ情報を受け取るステップであって、前記センサ情報は障害物を含み得る環境を表す、該ステップと、
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性と相違する、該ステップ
を有する、方法。
<請求項73>
少なくとも1つの非一時的プロセッサ可読媒体に、生成された前記障害物を含み得る環境の離散化表現を記憶するステップをさらに有する請求項72記載の方法。
<請求項74>
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含む、請求項72に記載の方法。
<請求項75>
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、ロボットにより掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含む、請求項72に記載の方法。
<請求項76>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、特定された前記シナリオに基づいて少なくとも2つの離散化の間で選択するステップを含み、
それぞれの前記離散化のうちの少なくとも2つのボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、請求項72に記載の方法。
<請求項77>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の少なくとも1つの領域の複数のボクセルの各々が前記ロボットの後方の少なくとも1つの領域の複数のボクセルの各々のそれぞれの体積と比較して相対的に小さい体積を有する、該離散化を使用して環境の離散化された表現を生成するステップを含む、請求項72に記載の方法。
<請求項78>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積と相違する、該離散化を使用して環境の離散化された表現を生成するステップを含む、請求項72に記載の方法。
<請求項79>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第3の体積が第2の体積と相違する、該離散化を使用して生成するステップを含む、請求項72に記載の方法。
<請求項80>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第2の体積が第1の体積と相違し、第3の体積が第2の体積と相違する、該離散化を使用して生成するステップを含む、請求項72に記載の方法。
<請求項81>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを含む、請求項72に記載の方法。
<請求項82>
障害物を含み得る前記環境の離散化表現を生成するステップは、前記ロボットの前方の少なくとも1つの領域内の複数のボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の複数のボクセルの各々の形状と相違する、前記決定された離散化を使用して、前記環境の離散化表現を生成するステップを含む、請求項72に記載の方法。
<請求項83>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違する、請求項72に記載の方法。
<請求項84>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数のボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数のボクセルが第3の形状を有し、前記第3の形状が前記第2の形状と相違する、請求項72に記載の方法。
<請求項85>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数のボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数のボクセルが第3の形状を有し、前記第2の形状が第1の形状と相違し、前記第3の形状が第2の形状と相違する、請求項72に記載の方法。
<請求項86>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの直前の第1の領域内の複数の前記ボクセルの各々が第1の形状を有し、前記ロボットの前記における前記ロボットに関して前記第1の領域から相対的に外側に離間した複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した複数の前記ボクセルが第3の形状を有し、前記第2の形状が第1の形状と相違し、前記第3の形状が第2の形状と相違する、請求項72に記載の方法。
<請求項87>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第1のそれぞれの離散化を生成する、
請求項72に記載の方法。
<請求項88>
前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、
受け取った情報に少なくとも部分的に基づいて特定されたシナリオを特定するステップ
をさらに含む、請求項72記載の方法。
<請求項89>
前記環境の離散化された表現を少なくとも1つのプロセッサに提供するステップをさらに含む、請求項72記載の方法。
<請求項90>
前記少なくとも1つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、
前記環境の離散化された表現を、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された複数の回路のそれぞれに適用するステップ
をさらに含む、請求項72から89のいずれかに記載の方法。
<請求項91>
モーションプラニングを容易にするためのプロセッサベースのシステムであって、
少なくとも1つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害物を含み得る環境の離散化表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
環境を感知する1つまたは複数のセンサによって前記障害物を含み得る環境を表すセンサ情報を受け取るステップと、
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性と相違する、該ステップ
を実行させる、プロセッサベースのシステム。
<請求項92>
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、請求項73~90の方法のいずれかを実行させる、請求項91に記載のプロセッサベースのシステム。
<請求項93>
複数の計画グラフを使用するロボット制御システムにおける動作方法であって、各計画グラフは複数のエッジによってそれぞれ接続された複数のノードをそれぞれ含み、各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれはそれぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表され、
前記方法は、
前記複数の計画グラフのうちの第1の計画グラフに対し、
第1の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第1の計画グラフを更新するステップと、
更新された前記第1の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップと、
更新された前記第1の計画グラフから、前記1つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、
前記方法はさらに、
前記最適化された結果が満足条件を満たさないと判断したことに応じて、
第2の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第2の計画グラフを更新するステップと、
更新された前記第2の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップを含む、方法。
<請求項94>
更新された前記第2の計画グラフから、前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップをさらに含む、請求項93記載の方法。
<請求項95>
前記更新された第2の計画グラフからの前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、
更新された前記第2計画グラフからの前記1つまたは複数の最適化された結果の1つによって特定された遷移を前記ロボットに適用するステップをさらに有する、請求項94に記載の方法。
<請求項96>
前記更新された第2の計画グラフからの前記1つまたは複数の最適化された結果がもし存在しないのなら、当該結果が前記満足条件を満さないと決定したことに応答して、
第3の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第3の計画グラフを更新するステップと、
更新された前記第3の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップをさらに有する、請求項94に記載の方法
<請求項97>
前記更新された第3の計画グラフからの前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、
更新された前記第3計画グラフからの前記1つまたは複数の最適化された結果の1つによって特定される遷移をロボットに適用するステップをさらに有する、請求項96に記載の方法。
<請求項98>
更新された前記第2の計画グラフから、もし存在するのなら前記1つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が任意の経路を生成するかどうかを決定するステップを含む、請求項93に記載の方法。
<請求項99>
更新された前記第2の計画グラフから、もし存在するのなら前記1つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が衝突のない経路を生成するかどうかを決定するステップを含む、請求項93に記載の方法。
<請求項100>
前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップは、前記第1の計画グラフ内の前記エッジの各々について、前記エッジに関するエッジ情報のセットを、前記複数の回路の各々に並列に適用するステップを含み、前記回路は前記ロボットが動作する環境内の障害物によって占有されるそれぞれの単位体積をそれぞれ表す、請求項93から99のいずれかに記載の方法。
<請求項101>
少なくとも1つのプロセッサが、少なくとも前記第1のロボットが動作する環境内の1つまたは複数の障害物によって占有される複数の単位体積のそれぞれを表す複数の回路を実装するように構成される、請求項100の方法。
<請求項102>
複数の計画グラフを使用するプロセッサベースのロボット制御システムであって、各計画グラフは複数のエッジによって接続された複数のノードをそれぞれ含み、各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれは、それぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表され、
前記システムは、
少なくとも1つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
前記複数の計画グラフのうちの第1の計画グラフに対し、
第1の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第1の計画グラフを更新するステップと、
更新された前記第1の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップと、
更新された前記第1の計画グラフから、前記1つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、
前記方法はさらに、
前記最適化された結果が満足条件を満たさないと判断したことに応じて、
第2の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第2の計画グラフを更新するステップと、
更新された前記第2の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップ
を実行させる、プロセッサベースのロボット制御システム。
<請求項103>
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項94~101の方法のいずれかを実行させる、請求項102に記載のプロセッサベースのロボット制御システム。