(57)【要約】  ロボット制御システムはロボット掃引体積の離散化表現を生成し、ロボットが動作する環境の離散化表現を生成するために使用するいくつかの離散化のうちのどれを使用するかを決定する。環境およびその中の障害物を表す障害物ボクセル（またはボックス）は、プロセッサにストリーミングされ、オンチップ環境メモリに記憶される。実行時に、ロボット制御システムは、オフチップまたはオンチップメモリに記憶された複数のロボットのモーションプラニンググラフの間で動的に切り替えることができる。実行時に複数のロボットのモーションプラニンググラフの間で動的に切り替えることにより、ロボット自体の特性が変化することにつれて、比較的低コストでロボットがロボットのモーションプラニングを実行するステップが可能になる。【選択図】  図２
2021513466.tif 000002
【特許請求の範囲】
【請求項１】
ロボット制御システムにおける動作方法であって、
環境内で動作する第１のロボットについて、複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表される、該ステップと、
各計画グラフのエッジの少なくとも２つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも１つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
第１の時間に第１の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものについての前記エッジ情報のセットを提供するステップと、
第２の時間に第２の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものについての前記エッジ情報のセットを提供するステップを有し、
前記第２の物理的寸法のセットのうちの少なくとも１つ寸法が前記第１のセットの対応する１つの前記寸法と相違する、方法。
【請求項２】
前記第１のロボットは前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢を有し、前記第１のロボットは前記第１の付属肢に取り付けられた第１のエンドエフェクタを有し、前記第１のエンドエフェクタは、少なくとも第１のエンドエフェクタ配置と第２のエンドエフェクタ配置との間で移動するように選択的に動作可能であり、
前記方法は、
前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが第１のエンドエフェクタ配置にあることを決定するステップをさらに有し、
前記第１の物理的寸法のセットは前記第１のエンドエフェクタ配置における前記第１のエンドエフェクタの寸法のセットを表し、
少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが前記第１のエンドエフェクタ配置にあることの決定に応答し、
前記方法は、
前記第１の付属肢に取り付けられた第１のエンドエフェクタが第２のエンドエフェクタ配置にあると判定するステップをさらに有し、
前記第２の物理的寸法のセットは前記第２のエンドエフェクタ配置における前記第１のエンドエフェクタの寸法のセットを表し、
少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが前記第２のエンドエフェクタ配置にあることの決定に応答する、請求項１に記載の方法。
【請求項３】
前記第１のロボットは前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢と、前記第１の付属肢に取り付けられた第１のエンドエフェクタとを有し、前記第１のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つは、前記把持していない配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つとは相違し、
前記方法は、
前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持していない配置にあると決定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持していない配置にあるという決定に応答する、該ステップと、
前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持している配置にあると決定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持している配置にあるという決定に応答する、該ステップ
をさらに有する、請求項１に記載の方法。
【請求項４】
前記第１のロボットは、前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢を有し、
前記方法は、
前記第１のロボットが前記第１の付属肢に取り付けられた第１のエンドエフェクタを有すると決定するステップをさらに有し、
前記第１の物理的寸法のセットが前記第１の付属肢に取り付けられた前記第１のエンドエフェクタの寸法のセットを表し、
少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記第１のロボットが前記第１の付属肢に取り付けられた第１のエンドエフェクタを有するという決定に応答し、
前記方法は、
前記第１のロボットが前記第１の付属肢に取り付けられた第２のエンドエフェクタを有すると決定するステップをさらに有し、
前記第２のエンドエフェクタが前記第１のエンドエフェクタとは少なくとも１つの形状またはサイズで相違し、
前記第２の物理的寸法のセットが前記第１の付属肢に取り付けられた前記第２のエンドエフェクタの寸法のセットを表し、
少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップが、前記第１のロボットが前記第１の付属肢に取り付けられた第２のエンドエフェクタを有するという決定に応答する、請求項１記載の方法。
【請求項５】
前記第１のロボットは自律車両または半自律車両のうちの少なくとも１つであり、第１の物理的状態にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つは、第２の物理的状態にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つと相違し（例えば、例えば、燃料の消費によって重量が変化し得るために速度が変化し、移動距離が変化し得る）、
前記方法は、
前記自律車両または半自律車両のうちの少なくとも１つが第１の物理的状態にあると判定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記自律車両または半自律車両のうちの少なくとも１つが前記第１の物理的状態にあるという決定に応答する、該ステップと、
前記自律車両または半自律車両のうちの少なくとも１つが第２の物理的状態にあると決定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、自律車両または半自律車両のうちの少なくとも１つが第２の物理的状態にあるという決定に応答する、該ステップ
をさらに有する、請求項１に記載の方法。
【請求項６】
少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの１つに対する前記エッジ情報を前記少なくとも１つのプロセッサの複数の回路の各々に適用して、前記ロボットが動作する環境内の障害物によって占有される単位体積とどのエッジが衝突するかを決定するステップを含む、請求項１〜５のいずれかに記載の方法。
【請求項７】
少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの１つに対する前記エッジ情報を、前記少なくとも１つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含む、請求項１〜５のいずれかに記載の方法。
【請求項８】
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを生成するステップを含む、請求項１〜５のいずれかに記載の方法。
【請求項９】
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を２つ以上のボクセルをカバーする体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項１〜５のいずれかに記載の方法。
【請求項１０】
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズム（直方体）で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項１〜５のいずれかに記載の方法。
【請求項１１】
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すそれぞれのエッジ情報のセットを生成するステップは、前記矩形プリズムの各々に対して、それぞれの前記矩形プリズムの体積を完全に規定する三次元座標のセットを格納するステップを含む、請求項１０に記載の方法。
【請求項１２】
複数の計画グラフを決定するステップと、それぞれのエッジ情報のセットを生成するステップが、実行前期間中に実行される、請求項１〜５のいずれかに記載の方法。
【請求項１３】
少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、実行期間中に実行される、請求項１〜５のいずれかに記載の方法。
【請求項１４】
プロセッサベースのロボット制御システムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、
環境内で動作する第１のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表される、該ステップと、
各計画グラフのエッジの少なくとも２つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも１つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
第１の時間に第１の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップと、
第２の時間に第２の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップ
を実行させるプロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有し、
前記第２の物理的寸法のセットのうちの少なくとも１つの寸法が前記第１のセットの前記寸法のうちの対応する１つと相違する、プロセッサベースのロボット制御システム。
【請求項１５】
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、請求項２から１３の方法のいずれかを実行させる、請求項１４に記載のプロセッサベースのシステム。
【請求項１６】
ロボット制御システムにおける動作方法であって、
少なくとも第１のロボットが動作する１つ以上の障害物によって占有される環境の第１の離散化された表現に対して、少なくとも１つのプロセッサに前記環境の第１の離散化された表現の少なくとも一部を供給するステップと、
前記少なくとも１つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第１の計画グラフの各エッジについて、前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記複数の計画グラフの各計画グラフが前記第１のロボットの異なる物理的寸法のセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第１のロボットの状態のペアの間を遷移する際に前記第１のロボットの少なくとも一部によって掃引される体積を表し、前記第１のロボットの状態のペアのそれぞれは前記第１の計画グラフのノードのペアのそれぞれによって表され、前記ノードのペアのそれぞれは前記第１の計画グラフのそれぞれのエッジによって接続され、前記それぞれのエッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表す、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と前記環境内の１つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第１の計画グラフのエッジのいずれかを特定するステップを有する、方法。
【請求項１７】
前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを適用するステップを含む、請求項１６に記載の方法。
【請求項１８】
前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を体積単位で表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ２つ以上のボクセルをカバーする、請求項１６に記載の方法。
【請求項１９】
前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップであって、前記第２の配置は前記第１の配置とは相違する、該ステップと、
複数の前記計画グラフの第２の計画グラフの各エッジについて、前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記エッジ情報のそれぞれのセットは前記第１のロボットの状態のペアの間で遷移する際に、前記第１のロボットの少なくとも一部により掃引される体積を表し、前記第１のロボットの状態のペアは前記第２の計画グラフのノードのペアのそれぞれの１つによって表され、前記ノードのそれぞれのペアは前記第２の計画グラフのそれぞれのエッジによって結合され、前記それぞれのエッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表し、前記第２の計画グラフは第１の計画グラフと相違する、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と環境内の１つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第２の計画グラフの前記エッジのいずれかを特定するステップ
を有する、請求項１６の方法。
【請求項２０】
前記第１のロボットが前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な第１の付属肢を含み、前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップが、第２のエンドエフェクタが第１のエンドエフェクタの代わりに前記第１の付属肢に取り付けられるかまたは取り付けられていることを決定するステップを含む、請求項１９に記載の方法。
【請求項２１】
前記第１のロボットが前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な第１の付属肢と、前記第１の付属肢に取り付けられた第１のエンドエフェクタとを含み、前記第１のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つは前記把持していない配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つとは相違し、前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップを含む、請求項１９に記載の方法。
【請求項２２】
前記第１のロボットは自律車両または半自律車両のうちの少なくとも１つであり、第１の配置にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つは、第２の配置にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つと相違し、
前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップは、前記自律車両または半自律車両のうちの少なくとも１つが、前記自律車両または半自律車両のうちの少なくとも１つの前記第１及び第２の配置間で遷移しているかまたは遷移したことを決定するステップを含む、請求項１９に記載の方法。
【請求項２３】
前記少なくとも１つのプロセッサに前記第１の計画グラフの各エッジのエッジ情報のそれぞれのセットを提供するステップは実行期間中に前記エッジ情報のそれぞれのセットを非一時的記憶装置から取り出すステップを含み、前記エッジ情報のそれぞれのセットは実行前期間中に前記非一時的記憶装置に記憶され
前記少なくとも１つのプロセッサはフィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つであり、少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つに実装された前記少なくとも１つのプロセッサの複数の回路のそれぞれに前記エッジのうちの１つのためのエッジ情報を適用するステップを含む、請求項１６〜２２のいずれかに記載の方法。
【請求項２４】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、
少なくとも第１のロボットが動作する１つまたは複数の障害物によって占有される環境の第１の離散化された表現に対して、前記環境の第１の離散化された表現の少なくとも一部を少なくとも１つのプロセッサに供給するステップと、
少なくとも１つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第１の計画グラフの各エッジについて、エッジ情報のそれぞれのセットを少なくとも１つのプロセッサに提供するステップであって、前記複数の計画グラフのうちの第１の計画グラフの各エッジは前記第１のロボットの物理的寸法の異なるセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第１のロボットの状態のペアの間で遷移する際に前記第１のロボットの少なくとも一部によって掃引される体積を表し、前記第１のロボットの状態のペアのそれぞれは前記第１の計画グラフのノードのペアのそれぞれの１つによって表され、前記ノードのペアのそれぞれは前記第１の計画グラフのエッジのそれぞれにより結合され、前記エッジのそれぞれは前記第１のロボットの状態のペアのそれぞれの間の遷移を表す、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と前記環境内の１つまたは複数の障害物の少なくとも一部の間の衝突をもたらすことになる前記第１の計画グラフの前記エッジのいずれかを特定するステップ
を実行させるプロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有するプロセッサベースのロボット制御システム。
【請求項２５】
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、請求項１７〜２３の方法のいずれかを実行させる、請求項２４に記載のプロセッサベースのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、ロボットのモーションプラニング（又は、動作プラニング／動作計画／motion planning／動作を計画すること）に関し、特に、１つまたは複数のプロセッサ上の環境の離散化された表現を記憶するロボットのモーションプラニングを容易にするシステムおよび方法に関する。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
ロボット制御やロボット工学において、ロボットのモーションプラニングは基本的な問題である。モーションプラニングは、ロボットがスタート状態からゴール状態に追従できる経路を完全に指定し、通常では、動作環境で障害物との衝突が無く、又は、動作環境で障害物に衝突する可能性が小さい。モーションプラニングの課題には、ロボット自体の特性が変化しても、比較的低コストで非常に高速な速度でモーションプラニングを実行する能力が含まれる。例えば、そのような特性はロボットが様々なサイズの物体を保持しているとき、異なるエンドエフェクタに変更するとき、または異なる付属肢（又は、付属物／appendageに変更するときに、ロボットによって占有されていると考えられる容積を含み得る。また、プロセッサチップ回路上に記憶することができる限られた量のロボットのモーションプラニング情報に関しても課題がある。
【課題を解決するための手段】
【０００３】
ロボット制御システムにおける動作方法は、環境内で動作する第１のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフ（又は、計画グラフ）を決定するステップであって、各ノードは前記第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のそれぞれのペア（又は、対）の間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表される、該ステップと、各計画グラフのエッジの少なくとも２つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも１つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、第１の時間に第１の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップと、第２の時間に第２の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップを有し、第２の物理的寸法のセットのうちの少なくとも１つの寸法が前記第１のセットの前記寸法のうちの対応する１つと相違する、方法と要約され得る。
【０００４】
前記第１のロボットは前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢を有し、前記第１のロボットは前記第１の付属肢に取り付けられた第１のエンドエフェクタを有し、前記第１のエンドエフェクタは、少なくとも第１のエンドエフェクタ配置と第２のエンドエフェクタ配置との間で移動するように選択的に動作可能であり、前記方法は、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが第１のエンドエフェクタ配置にあることを決定するステップをさらに有し、前記第１の物理的寸法のセットは前記第１のエンドエフェクタ配置における前記第１のエンドエフェクタの寸法のセットを表し、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが前記第１のエンドエフェクタ配置にあることの決定に応答し得る。
【０００５】
前記第１の付属肢に取り付けられた第１のエンドエフェクタが第２のエンドエフェクタ配置にあると判定するステップをさらに有し、前記第２の物理的寸法のセットは前記第２のエンドエフェクタ配置における前記第１のエンドエフェクタの寸法のセットを表し、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが前記第２のエンドエフェクタ配置にあることの決定に応答し得る。前記第１のロボットは前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢と、前記第１の付属肢に取り付けられた第１のエンドエフェクタとを有し、前記第１のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つは、前記把持していない配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つとは相違し、前記方法は、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持していない配置にあると決定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持していない配置にあるという決定に応答する、該ステップと、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持している配置にあると決定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持している配置にあるという決定に応答する、該ステップをさらに有し得る。前記第１のロボットは、前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢を有し、前記方法は、前記第１のロボットが前記第１の付属肢に取り付けられた第１のエンドエフェクタを有すると決定するステップをさらに有し、前記第１の物理的寸法のセットが前記第１の付属肢に取り付けられた前記第１のエンドエフェクタの寸法のセットを表し、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記第１のロボットが前記第１の付属肢に取り付けられた第１のエンドエフェクタを有するという決定に応答する方法であり得る。
【０００６】
前記第１のロボットが前記第１の付属肢に取り付けられた第２のエンドエフェクタを有すると決定するステップをさらに有し、前記第２のエンドエフェクタが前記第１のエンドエフェクタとは少なくとも１つの形状またはサイズで相違し、前記第２の物理的寸法のセットが前記第１の付属肢に取り付けられた前記第２のエンドエフェクタの寸法のセットを表し、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップが、前記第１のロボットが前記第１の付属肢に取り付けられた第２のエンドエフェクタを有するという決定に応答する方法であり得る。
【０００７】
前記第１のロボットは自律車両または半自律車両のうちの少なくとも１つであり、第１の物理的状態にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つは、第２の物理的状態にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つと相違し（例えば、燃料の消費によって重量が変化し得るために速度が変化し、移動距離が変化し得る）、前記方法は、前記自律車両または半自律車両のうちの少なくとも１つが第１の物理的状態にあると判定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記自律車両または半自律車両のうちの少なくとも１つが前記第１の物理的状態にあるという決定に応答する、該ステップと、前記自律車両または半自律車両のうちの少なくとも１つが第２の物理的状態にあると決定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、自律車両または半自律車両のうちの少なくとも１つが第２の物理的状態にあるという決定に応答する、該ステップをさらに有し得る。少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの１つに対する前記エッジ情報を前記少なくとも１つのプロセッサの複数の回路の各々に適用して、どのエッジが前記ロボットが動作する環境内の障害物によって占有される単位体積と衝突するかを決定するステップを含み得る。少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの１つに対する前記エッジ情報を、前記少なくとも１つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を２つ以上のボクセルをカバーする（含む）体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を２つ以上のボクセルをカバーする体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズム（直方体）で表すそれぞれのエッジ情報のセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズム（直方体）で表すそれぞれのエッジ情報のセットを生成するステップは、前記矩形プリズムの各々に対して、それぞれの矩形プリズムの体積を完全に規定する三次元座標のセットを格納するステップを含み得る。複数の計画グラフを決定するステップと、それぞれのエッジ情報のセットを生成するステップが、実行前期間中に実行され得る。少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、実行時期間中に実行され得る。
【０００８】
プロセッサベースのロボット制御システムは、少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、環境内で動作する第１のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表される、該ステップと、各計画グラフのエッジの少なくとも２つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも１つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、第１の時間に第１の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップと、第２の時間に第２の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップを実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する、少なくとも１つの非一時的プロセッサ可読媒体を有し、前記第２の物理的寸法のセットのうちの少なくとも１つの寸法が前記第１のセットの前記寸法のうちの対応する１つと相違する、プロセッサベースのロボット制御システムであり得る。
【０００９】
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに任意の上記方法を実行させ得る。
【００１０】
ロボット制御システムにおける動作方法は、少なくとも第１のロボットが動作する１つ以上の障害物によって占有される環境の第１の離散化された表現に対して、少なくとも１つのプロセッサに前記環境の第１の離散化された表現の少なくとも一部を供給するステップと、前記少なくとも１つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第１の計画グラフの各エッジについて、前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記複数の計画グラフの各計画グラフが前記第１のロボットの異なる物理的寸法のセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第１のロボットの状態のペアの間を遷移する際に前記第１のロボットの少なくとも一部によって掃引される体積を表し、前記第１のロボットの状態のペアのそれぞれは、前記第１の計画グラフのノードのペアのそれぞれによって表され、
前記ノードのペアのそれぞれは前記第１の計画グラフのそれぞれのエッジによって接続され、前記それぞれのエッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表す、該ステップと、対応する遷移が前記ロボットの少なくとも一部と前記環境内の１つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第１の計画グラフのエッジのいずれかを特定（又は、識別）するステップを有し得る。
【００１１】
前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、前記エッジのうちの１つについての前記エッジ情報を、前記少なくとも１つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含み得る。前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも１つのプロセッサの複数の回路のそれぞれに前記それぞれのエッジについての前記エッジ情報を並列に適用するステップを含み得る。前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを適用するステップを含み得る。前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を体積単位で表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ２つ以上のボクセルをカバーし得る。前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ２つ以上のボクセルをカバーし得る。前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップが、前記矩形プリズムのそれぞれについて、それぞれの前記矩形プリズムの体積を完全に定義する３次元座標のペアを格納するステップを含み得る。
【００１２】
前記方法は、前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップであって、前記第２の配置は前記第１の配置とは相違する、該ステップと、複数の前記計画グラフの第２の計画グラフの各エッジについて、前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記エッジ情報のそれぞれのセットは前記第１のロボットの状態のペアの間で遷移する際に、前記第１のロボットの少なくとも一部により掃引される体積を表し、前記第１のロボットの状態のペアは前記第２の計画グラフのノードのペアのそれぞれの１つによって表され、前記ノードのそれぞれのペアは前記第２の計画グラフのそれぞれのエッジによって結合され、前記それぞれのエッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表し、前記第２の計画グラフは第１の計画グラフと相違する、該ステップと、対応する遷移が前記ロボットの少なくとも一部と環境内の１つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第２の計画グラフの前記エッジのいずれかを特定するステップをさらに有し得る。
【００１３】
前記第１のロボットが前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な第１の付属肢を含み、前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップが、第２のエンドエフェクタが第１のエンドエフェクタの代わりに前記第１の付属肢に取り付けられるかまたは取り付けられていることを決定するステップを含み得る。前記第１のロボットが前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な第１の付属肢と、前記第１の付属肢に取り付けられた第１のエンドエフェクタとを含み、前記第１のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つは前記把持していない配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つとは相違し、前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップを含み得る。前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップは、前記第１のエンドエフェクタが把持していない配置と把持している配置との間で遷移しているかまたは遷移したことを決定するステップを含み得る。前記第１のロボットは自律車両または半自律車両のうちの少なくとも１つであり、第１の配置にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つは、第２の配置にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つと相違し、前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップは、前記自律車両または半自律車両のうちの少なくとも１つが、前記自律車両または半自律車両のうちの少なくとも１つの前記第１及び第２の配置間で遷移しているかまたは遷移したことを決定するステップを含み得る。前記少なくとも１つのプロセッサに前記第１の計画グラフの各エッジのエッジ情報のそれぞれのセットを提供するステップは実行期間中に前記エッジ情報のそれぞれのセットを非一時的記憶装置から取り出すステップを含み、前記エッジ情報のそれぞれのセットは実行前期間中に前記非一時的記憶装置に記憶され得る。前記少なくとも１つのプロセッサはフィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つであり、少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つに実装された前記少なくとも１つのプロセッサの複数の回路のそれぞれに前記エッジのうちの１つのためのエッジ情報を適用するステップを含み得る。
【００１４】
前記少なくとも１つのプロセッサ上のメモリに前記環境の第１の離散化された表現を記憶するステップと、前記少なくとも１つのプロセッサ上のメモリに前記環境の第１の離散化された表現を記憶した後、前記少なくとも１つのプロセッサとは別個の記憶装置から前記少なくとも１つのプロセッサによって前記エッジ情報のセットを受信するステップを含み得る。
【００１５】
プロセッサベースのロボット制御システムは、少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、少なくとも第１のロボットが動作する１つまたは複数の障害物によって占有される環境の第１の離散化された表現に対して、環境の第１の離散化された表現の少なくとも一部を少なくとも１つのプロセッサに供給するステップと、少なくとも１つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第１の計画グラフの各エッジについて、エッジ情報のそれぞれのセットを少なくとも１つのプロセッサに提供するステップであって、前記複数の計画グラフのうちの第１の計画グラフの各エッジは第１のロボットの物理的寸法の異なるセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第１のロボットの状態のペアの間で遷移する際に前記第１のロボットの少なくとも一部によって掃引される体積を表し、前記第１のロボットの状態のペアのそれぞれは前記第１の計画グラフのノードのペアのそれぞれの１つによって表され、前記ノードのペアのそれぞれは前記第１の計画グラフのエッジのそれぞれにより結合され、前記エッジのそれぞれは前記第１のロボットの状態のペアのそれぞれの間の遷移を表す、該ステップと、対応する遷移が前記ロボットの少なくとも一部と、前記環境内の１つまたは複数の障害物の少なくとも一部の間の衝突をもたらすことになる前記第１の計画グラフの前記エッジのいずれかを特定するステップを実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有し得る。
【００１６】
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、上記方法のいずれかを実行させ得る。
【００１７】
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法は、タスクおよび環境の複数のペアのセットを含む少なくとも第１のシナリオについて、前記少なくとも第１のシナリオのタスクおよび環境の前記ペアのそれぞれについて、複数の反復のそれぞれについて、少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも２つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状（又は、離散化内のサイズおよび形状）のうちの少なくとも１つにおいて不均一（又は、不均質、非一様）であり、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、少なくとも１つの非一時的プロセッサ可読媒体に、少なくとも第１のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを有し得る。
【００１８】
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも１つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルのそれぞれの体積のそれぞれと比較して比較的小さい体積を有する、第１のそれぞれの離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第１の領域の複数の前記ボクセルのそれぞれが第１の体積を有し、前記ロボットの前方の第２の領域の複数の前記ボクセルが第２の体積を有し、前記第２の体積が前記第１の体積と相違する、第１のそれぞれの離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、ロボットの前方の第１の領域の複数のボクセルの各々が第１の体積を有し、ロボットの前方の第２の領域の複数のボクセルが第２の体積を有し、ロボットの前方の第３の領域の複数のボクセルが第３の体積を有し、第３の体積が第２の体積と相違する、第１のそれぞれの離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第１の領域の複数の前記ボクセルのそれぞれが第１の体積を有し、前記ロボットの前方の第２の領域の複数の前記ボクセルが第２の体積を有し、前記ロボットの前方の第３の領域の複数の前記ボクセルが第３の体積を有し、前記第２の体積は前記第１の体積とは相違し、前記第３の体積が前記第２の体積と相違する、第１のそれぞれの離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した第３の領域内の複数の前記ボクセルのそれぞれが第３の形状を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と相違する、第１のそれぞれの離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも１つの領域内の複数の前記ボクセルの各々の形状が、前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルの各々の形状と相違する、第１のそれぞれの離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記第２の形状が前記第１の形状と相違する、第１のそれぞれの離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の形状を有し、前記第３の形状が前記第２の形状と相違する、第１のそれぞれの離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の形状を有し、前記第２の形状が前記第１の形状と相違し、前記第３の形状が前記第２の形状と相違する、第１の離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した複数の前記ボクセルが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した複数の前記ボクセルが第３の形状を有し、前記第２の形状は前記第１の形状とは相違し、前記第３の形状は第２の形状とは相違する、第１の離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の少なくとも１つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第１のそれぞれの離散化を生成するステップを含み得る。少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも１つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方とは相違し、形状のうちの少なくとも１つが非立方体である、第１のそれぞれの離散化を生成するステップを含み得る。前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突のない経路をもたらす可能性が最も高いかを決定するステップを含み得る。前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突の確率が最も低い経路をもたらす可能性が最も高いかを決定するステップを含み得る。前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、最も低コストの衝突のない経路をもたらす可能性が最も高いかを決定するステップを含み得る。少なくとも１つの非一時的プロセッサ可読媒体に、少なくとも第１のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップは、複数のシナリオの各々に対して少なくとも１つの生成されたそれぞれの離散化を、生成されたそれぞれの離散化のうちのどれが複数のシナリオの各々に対して使用されるべきかの指示と共に記憶するステップを含み得る。
【００１９】
モーションプラニングを容易にするためのプロセッサベースのシステムは、少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、タスクおよび環境の複数のペアのセットを含む少なくとも第１のシナリオについて、前記少なくとも第１のシナリオのタスクおよび環境の前記ペアのそれぞれについて、複数の反復のそれぞれについて、少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも２つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状（又は、それぞれの離散化でのサイズおよび形状）のうちの少なくとも１つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、少なくとも１つの非一時的プロセッサ可読媒体に、少なくとも第１のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する、少なくとも１つの非一時的プロセッサ可読媒体を有し得る。
【００２０】
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、上記方法のいずれかを実行させ得る。
【００２１】
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法は、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの１つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの（又は、多数の）掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ１つを表し、エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも１つを少なくとも１つの非一時的プロセッサ可読媒体に記憶するステップを有し得る。
【００２２】
いくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップは、特定されたシナリオに基づいて少なくとも２つの離散化の中から選択するステップを含み、それぞれの離散化のうちの少なくとも２つのボクセルはそれぞれの離散化におけるサイズおよび形状（又は、それぞれの離散化でのサイズおよび形状）のうちの少なくとも１つにおいて不均一であり、それぞれの離散化のうちの少なくとも２つのボクセルの不均一性のそれぞれの分布は互いに相違し得る。決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の少なくとも１つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも１つの領域内の複数の前記ボクセルのそれぞれの体積と比較して比較的小さな体積を有するような前記決定された離散化を用いて前記エッジのそれぞれの掃引された体積を決定するステップを含み得る。
【００２３】
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の体積を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の体積を有し、前記第２の体積が前記第１の体積とは異なるような前記決定された離散化を用いて、前記エッジのそれぞれの掃引された体積を決定するステップを含み得る。決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルの各々が第１の体積を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の体積を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の体積を有し、前記第３の体積が前記第２の体積とは異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含み得る。決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルの各々が第１の体積を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の体積を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の体積を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した第３の領域内の複数の前記ボクセルのそれぞれが第３の形状を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と相違する、該ステップを有し得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも１つの領域における前記複数のボクセルの各々の形状が前記ロボットの後方の少なくとも１つの領域の前記複数のボクセルの各々の形状と相違する、該ステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記第２の体積が前記第１の体積と相違する、該ステップを有し得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第１の領域内の複数のボクセルの各々が第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の形状を有し、前記第３の形状が前記第２の形状とは相違する、該ステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第１の領域内の複数のボクセルの各々が第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の形状を有し、前記第２の形状が前記第１の形状とは相違し、前記第３の形状が前記第２の形状とは相違する、該ステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの直前の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した第３の領域内の複数の前記ボクセルのそれぞれが第３の形状を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と相違する、該ステップを有し得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも１つの領域における前記複数のボクセルの各々の形状および体積の両方が前記ロボットの後方の少なくとも１つの領域の前記複数のボクセルの各々の形状および体積の両方と相違し得る。
【００２４】
前記方法は、前記特定されたシナリオを受信するステップをさらに含み得る。
【００２５】
前記方法は、少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップをさらに有し、前記エッジ情報のそれぞれのセットは、前記ロボットの１つのペアの状態間の遷移の際に前記第１のロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表し得る。
【００２６】
前記少なくとも１つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つであり、前記フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つに実装された前記少なくとも１つのプロセッサの複数の回路のそれぞれに、前記ロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表すそれぞれのエッジ情報のセットを適用して、前記ロボットの１つのペアの状態間を遷移させるステップをさらに有し得る、
【００２７】
モーションプラニングを容易にするためのプロセッサベースのシステムであって、前記システムは、少なくとも１つのプロセッサと、プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有し、前記少なくとも１つの非一時的プロセッサ可読媒体は、前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの１つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ１つを表し、前記エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも１つを少なくとも１つの非一時的プロセッサ可読媒体に記憶するステップを実行させる、プロセッサベースのシステムであり得る。
【００２８】
前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、上記方法のいずれかを実行させうる。
【００２９】
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法は、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップと、環境を感知する１つまたは複数のセンサによって生成されたセンサ情報を受け取るステップであって、前記センサ情報は障害物を含み得る環境を表す、該ステップと、決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状（又は、それぞれの離散化でのサイズおよび形状）のうちの少なくとも１つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の１つにおける前記ボクセルの不均一性と相違する、該ステップを有し得る。 
【００３０】
上記方法は、少なくとも１つの非一時的プロセッサ可読媒体に、生成された前記障害物を含み得る環境の離散化表現を記憶するステップをさらに有し得る。
【００３１】
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含み得る。決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、ロボットにより掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、特定された前記シナリオに基づいて少なくとも２つの離散化の間で選択するステップを含み、それぞれの前記離散化のうちの少なくとも２つのボクセルは前記それぞれの離散化におけるサイズおよび形状（又は、それぞれの離散化でのサイズおよび形状）のうちの少なくとも１つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルのそれぞれの不均一性の分布は互いに相違し得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の少なくとも１つの領域の複数のボクセルの各々が前記ロボットの後方の少なくとも１つの領域の複数のボクセルの各々のそれぞれの体積と比較して相対的に小さい体積を有する、該離散化を使用して環境の離散化された表現を生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の第１の領域の複数の前記ボクセルのそれぞれが第１の体積を有し、前記ロボットの前方の第２の領域の複数の前記ボクセルが第２の体積を有し、前記第２の体積が前記第１の体積と相違する、該離散化を使用して環境の離散化された表現を生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の第１の領域の複数のボクセルの各々が第１の体積を有し、前記ロボットの前方の第２の領域の複数のボクセルが第２の体積を有し、前記ロボットの前方の第３の領域の複数のボクセルが第３の体積を有し、第３の体積が第２の体積と相違する、該離散化を使用して生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の第１の領域の複数のボクセルの各々が第１の体積を有し、前記ロボットの前方の第２の領域の複数のボクセルが第２の体積を有し、前記ロボットの前方の第３の領域の複数のボクセルが第３の体積を有し、第２の体積が第１の体積と相違し、第３の体積が第２の体積と相違する、該離散化を使用して生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの直前の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した第３の領域内の複数の前記ボクセルのそれぞれが第３の形状を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と相違する、該ステップを含み得る。障害物を含み得る前記環境の離散化表現を生成するステップは、前記ロボットの前方の少なくとも１つの領域内の複数のボクセルの各々の形状が前記ロボットの後方の少なくとも１つの領域の複数のボクセルの各々の形状と相違する、前記決定された離散化を使用して、前記環境の離散化表現を生成するステップを含み得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記第２の形状が前記第１の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の第１の領域内の複数のボクセルの各々が第１の形状を有し、前記ロボットの前方の第２の領域内の複数のボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数のボクセルが第３の形状を有し、前記第３の形状が前記第２の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の第１の領域内の複数のボクセルの各々が第１の形状を有し、前記ロボットの前方の第２の領域内の複数のボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数のボクセルが第３の形状を有し、前記第２の形状が第１の形状と相違し、前記第３の形状が第２の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの直前の第１の領域内の複数の前記ボクセルの各々が第１の形状を有し、前記ロボットの前記における前記ロボットに関して前記第１の領域から相対的に外側に離間した複数の前記ボクセルが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した複数の前記ボクセルが第３の形状を有し、前記第２の形状が第１の形状と相違し、前記第３の形状が第２の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の少なくとも１つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第１のそれぞれの離散化を生成し得る。
【００３２】
前記方法は、前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、受け取った情報に少なくとも部分的に基づいて特定されたシナリオを特定し得る。
【００３３】
前記方法は、前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、受け取った情報に少なくとも部分的に基づいて特定されたシナリオを特定するステップ
をさらに含み得る。
【００３４】
前記方法は、前記環境の離散化された表現を少なくとも１つのプロセッサに提供するステップをさらに含み得る。
【００３５】
前記方法は、
前記少なくとも１つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つであり、前記環境の離散化された表現を、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つに実装された複数の回路のそれぞれに適用するステップをさらに含み得る。
【００３６】
モーションプラニングを容易にするためのプロセッサベースのシステムは、少なくとも１つのプロセッサと、プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有し、前記少なくとも１つの非一時的プロセッサ可読媒体は、前記少なくとも１つのプロセッサによって実行されるときに、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害物を含み得る環境の離散化表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、環境を感知する１つまたは複数のセンサによって前記障害物を含み得る環境を表すセンサ情報を受け取るステップと、決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも１つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の１つにおける前記ボクセルの不均一性と相違する、該ステップを実行させ得る。
【００３７】
前記方法は、前記少なくとも１つの非一時的プロセッサ可読媒体は、前記少なくとも１つのプロセッサによって実行されるときに、上記方法のいずれかを実行させ得る。
【００３８】
複数の計画グラフを使用するロボット制御システムにおける動作方法は、各計画グラフは複数のエッジによってそれぞれ接続された複数のノードをそれぞれ含み、各ノードは第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれはそれぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表され、前記方法は、前記複数の計画グラフのうちの第１の計画グラフに対し、  第１の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、  前記衝突検査に基づいて前記第１の計画グラフを更新するステップと、  更新された前記第１の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップと、  更新された前記第１の計画グラフから、前記１つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、前記方法はさらに、前記最適化された結果が満足条件を満たさないと判断したことに応じて、  第２の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、  前記衝突検査に基づいて前記第２の計画グラフを更新するステップと、  更新された前記第２の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップを含み得る。
【００３９】
上記方法は、更新された前記第２の計画グラフから、前記１つまたは複数の最適化された結果がもし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップをさらに含み得る。
【００４０】
上記方法は、  前記更新された第２の計画グラフからの前記１つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、更新された前記第２計画グラフからの前記１つまたは複数の最適化された結果の１つによって特定された遷移を前記ロボットに適用するステップをさらに有し得る。
【００４１】
上記方法は、前記更新された第２の計画グラフからの前記１つまたは複数の最適化された結果がもし存在しないのなら、当該結果が前記満足条件を満さないと決定したことに応答して、  第３の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、  前記衝突検査に基づいて前記第３の計画グラフを更新するステップと、  更新された前記第３の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップをさらに有し得る。
【００４２】
上記方法は、前記更新された第３の計画グラフからの前記１つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、更新された前記第３計画グラフからの前記１つまたは複数の最適化された結果の１つによって特定される遷移をロボットに適用するステップをさらに有し得る。
【００４３】
上記方法は、更新された前記第２の計画グラフから、もし存在するのなら前記１つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が任意の経路を生成するかどうかを決定するステップを含み得る。
【００４４】
上記方法は、更新された前記第２の計画グラフから、もし存在するのなら前記１つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が衝突のない経路を生成するかどうかを決定するステップを含み得る。前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップは、前記第１の計画グラフ内の前記エッジの各々について、前記エッジに関するエッジ情報のセットを、前記複数の回路の各々に並列に適用するステップを含み、前記回路は前記ロボットが動作する環境内の障害物によって占有されるそれぞれの単位体積をそれぞれ表し得る。少なくとも１つのプロセッサが、少なくとも前記第１のロボットが動作する環境内の１つまたは複数の障害物によって占有される複数の単位体積のそれぞれを表す複数の回路を実装するように構成され得る。
【００４５】
プロセッサベースのロボット制御システムは、複数の計画グラフを使用するプロセッサベースのロボット制御システムであって、各計画グラフは複数のエッジによって接続された複数のノードをそれぞれ含み、各ノードは第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれは、それぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表され、前記システムは、少なくとも１つのプロセッサと、プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有し、前記少なくとも１つの非一時的プロセッサ可読媒体は、前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、前記複数の計画グラフのうちの第１の計画グラフに対し、  第１の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、  前記衝突検査に基づいて前記第１の計画グラフを更新するステップと、  更新された前記第１の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップと、  更新された前記第１の計画グラフから、前記１つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、前記方法はさらに、前記最適化された結果が満足条件を満たさないと判断したことに応じて、  第２の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、  前記衝突検査に基づいて前記第２の計画グラフを更新するステップと、  更新された前記第２の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップを実行させ得る。
【００４６】
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、上記方法のいずれかを実行させ得る。
【図面の簡単な説明】
【００４７】
図面において、同一の参照番号は、同様の要素または作用を示す。図面における要素のサイズおよび相対位置は、必ずしも一定の縮尺で描かれてはいない。例えば、さまざまな要素の形状および角度は一定の縮尺で描かれず、これらの要素のいくつかは、図面を見やすくするために、随時適当に拡大および配置されている。さらに、描かれた要素の特定の形状は、特定の要素の実際の形状に関するいかなる情報も伝えることを意図しておらず、図面における認識を容易にするために単に選択されたものである。
図１は、１つの例示としての実施形態に従った、ロボットが動作し得る環境の概略図である。
図２は、１つの例示としての実施形態に従った、図１の環境で動作し得るロボットのロボット制御システムの機能ブロック図である。
図３はロボットが動作することができる図１の環境の概略図であり、１つの例示としての実施形態に従って、ロボットが３次元（３Ｄ）空間内の１つの位置から、環境内の３Ｄ空間内の別の位置に遷移するロボットと、３Ｄ空間内の１つの位置から３Ｄ空間内の別の位置に遷移する際に、ロボットの付属物によって掃引される体積の表現とを示す。
図４Ａは、１つの例示としての実施形態に従った、対応する遷移がロボットと環境内の１つ以上の障害物との間の衝突をもたらし得ることが決定された計画グラフのエッジを含む、図１のロボットのための例示的なロボットのモーションプラニンググラフである。
図４Ｂは、１つの例示的実施形態に従う、対応する遷移がロボットと環境内の１つまたは複数の障害物との間の衝突をもたすであろうことが決定された計画グラフのエッジが除去された図１のロボットのための例示的ロボットのモーションプラニンググラフである。
図５は、１つの例示としての実施形態に従った、特定の状況に従った異なる計画グラフのエッジ情報を提供することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
図６は、１つの例示としての実施形態に従った、対応する遷移が衝突をもたらすであろう計画グラフのエッジを特定することによってロボットのモーションプラニングを容易にするロボット制御システム内の動作方法を示すフロー図であり、該計画グラフはオフチップメモリに記憶された複数の計画グラフの１つであり、その各々は、ロボットの異なる物理的寸法のセットに関連付けられている。
図７は、１つの例示としての実施形態に従った、ロボットが動作する環境の表現の生成された非均一（又は、非一様）な離散化の有効性を評価することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
図８は、１つの例示としての実施形態に従った、ロボットが通過するであろうそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用すべきかを決定することによってロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
図９は、１つの例示としての実施形態に従った、ロボットが決定された離散化を用いて動作する環境の離散化された表現を生成することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
図１０は、１つの例示としての実施形態に従った、計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
【発明を実施するための形態】
【００４８】
種々の実施態様が正しく理解されるように、開示内容の詳細を以下に説明する。但し、当業者ならば、これら特定の細部の１つまたは２つ以上を欠いても、または他の方法、他の構成部材、他の材料でも実施が可能であることは容易に理解するところであろう。他の例では、コンピュータシステム、アクチュエータシステム、および／または通信ネットワークに関連する周知の構造は実施形態の説明を不必要に曖昧にすることを避けるために、詳細には示されておらず、または説明されていない。他の例では実施形態の説明を不必要に曖昧にすることを回避するために、１つまたは複数のオブジェクトなどの知覚データおよびボリュメトリック表現を生成するための周知のコンピュータビジョン方法および技法は詳細には説明されていない。
【００４９】
本明細書及び特許請求の範囲において理由が必要ない限り、用語”を有する”及びその派生語は確定していない包括的な意味、即ち、”含む”であるとみなされるが、それに限定されるものではない
【００５０】
本明細書全体を通して、「１つの実施形態」または「一実施形態」とは実施形態に関連して説明された特定の特徴、構成または特徴が少なくとも一実施形態に含まれることを手段し、したがって、本明細書全体を通して様々な場所に「１つの実施形態において」または「一実施形態において」という語句が現れることは必ずしもすべてが同じ実施形態を指すわけではない。さらに、特別な特徴、構造又は特質は１以上の実施形態において任意の適当な方法で組み合わせられ得る。
【００５１】
本明細書および添付の特許請求の範囲で使用されるように、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は内容が別段の明確な指示をしない限り、複数の指示対象を含む。また、用語「または」は内容が別段の明確な指示をしない限り、「および／または」を含む意味で一般に使用されることにも留意されたい。
【００５２】
冒頭の説明及び要約は便宜上のものであり、本発明の範囲を表すものではなく、又は実施形態を意味するものでもない。
【００５３】
図１は、１つの例示としての実施形態に従った、ロボット１０２が動作し得る動作環境１００を示す。簡潔にするために、本明細書では、動作環境１００を環境１００と呼ぶ。環境はロボット１０２が動作し、移動することができる二次元または三次元空間を表す。ロボット１０２はデカルト、ロボットアセンブリ（ＳＣＡＲＡ）のための選択的に従順なアーム、円筒形、デルタ、極性、および垂直関節を含むが、これらに限定されない、任意のタイプのロボットであってもよい。また、ロボットは自律的に又は半自律的に（すなわち、少なくとも部分的には自律的に）作動し、環境１００によって表される空間内を移動することができる自動車、飛行機、ドローン、又は任意の他の車両であってもよい。環境１００は、図４Ａおよび図４Ｂのロボットのモーションプラニンググラフに関して以下で参照され、「自動車および再構成可能な移動計画プロセッサのための移動計画」と題されたその全体が参照により本明細書に組み込まれる２０１７年６月９日に出願された国際特許出願第ＰＣＴ／ＵＳ２０１７／０３６８８０号、ならびに「特定のロボット移動計画ハードウェアおよびその製造および使用方法」と題されたその全体が参照により本明細書に組み込まれる２０１６年１月５日に出願された国際特許出願第ＷＯ２０１６／１２２８４０号に説明される、ロボットの「構成空間」（しばしば「Ｃ空間」と呼ばれる）とは異なるロボットが動作する２次元または３次元空間である。構成空間は典型的には多くの次元（すなわち、３次元より大きい）である。特に、計画グラフの各ノードはロボットの特定の構成（ロボットの関節位置の特定のセットの完全な仕様である）、ロボットの姿勢、速度、および方位を含むことができるが、これらに限定されない、ロボットの状態を表す。計画グラフの各エッジは、ある状態から別の状態へのロボットの遷移を表す。
【００５４】
図１を参照すると、環境１００は、障害物衝突領域を含み得る。これらの障害物衝突領域は環境１００内の静的物体（例えば、建物、樹木、岩、家具等）または動的物体（例えば、他のロボット、車両、人間、動物、転動岩、鳥等）によるものであり得る。例えば、障害物Ａ１１２および障害物Ｂ１０４はロボット１０２が障害物Ａ１１２または障害物Ｂ１０４のいずれかと同時に環境１００内の同じ空間を占有しようとした場合に、ロボット１０２が障害物Ａ１１２または障害物Ｂ１０４と衝突することが可能であるように、環境１００内に衝突領域を作り出す物体を表す。様々な実施形態では、図１に示すオブジェクトよりも少ないオブジェクトまたは追加のオブジェクトが存在し得る。
【００５５】
ロボットのモーションプラニングの課題は、比較的低コストで、非常に高速で、ロボット自体の特性が変化することにつれて頻繁にロボットのモーションプラニングを実行できるようにすることを含む。例えば、そのような特性はロボットが様々なサイズの物体を保持しているとき、異なるエンドエフェクタに変更するとき、または異なる付属肢（又は、付属物）に変更するときに、ロボットによって占有されると考えられる容積を含むことができるが、これらに限定されない。したがって、ロボット１０２は運動を実行するために、これらの変化にキャッチアップしている（対応できる）ことが有利である。これに関与するのは、ロボット１０２および環境１００内の障害物が占有されていると考えられる空間を効率的に表現し、伝達し、比較するための課題である。例えば、図１に示されるように、障害物Ａ１１２は、現在、ロボット１０２の前方にある。ロボット１０２が、ロボットアーム１０６のどの動作（およびロボット１０２の任意の動作）が障害物Ａ１１２との衝突をもたらすかどうかを迅速かつ効率的に判定することができることは有利である。したがって、本開示はロボット１０２が環境１００内のロボット１０２および障害物Ａ１１２によって占有される空間を効率的に表現し、通信し、比較することを可能にする解決策を提供し、ロボットアーム１０６のどの動作が障害物Ａ１１２との衝突をもたらすかを判断することを容易にする。
【００５６】
図１は代表的な環境１００を示すが、典型的な環境は他のロボットに対応する物体、ならびに様々な他の自然または人工の静的および動的な物体および障害物を含む、多くの追加の物体および実体を含み得る。本明細書で教示する概念は、図示したものよりも混雑した環境で同様に使用することができる。
【００５７】
図２および以下の議論は、１つの例示としての実施形態に従って、様々な例示および説明されたロボットのモーションプラニングシステムおよび方法が実施され得る、適切なロボット制御システム２００の簡潔で、一般的な説明を提供する。
【００５８】
必須ではないが、多くの実施形態はコンピュータまたはプロセッサ読み取り可能媒体上に記憶され、衝突評価およびロボットのモーションプラニング動作を実行することができる１つ以上のコンピュータまたはプロセッサによって実行されるプログラムアプリケーションモジュール、オブジェクト、またはマクロなどの、コンピュータ実行可能命令の一般的なコンテキストで説明される。そのようなロボットのモーションプラニング動作は計画グラフのエッジに関連するロボット掃引体積の１つまたは複数の離散化された表現を生成することと、ロボット掃引体積の離散化された表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定することと、ロボット１０２が動作することになる環境の離散化された表現を生成すること、環境の離散化された表現を生成するために、複数の離散化のうちのどれを使用するかを決定すること、決定された複数の計画グラフおよびエッジ情報のそれぞれのセットを記憶すること、計画グラフのノードによって表される状態の間を遷移する際にロボット１０２の少なくとも一部によって掃引される体積（又は、ボリューム、容積、立体的な部分又は場所）を表す情報を生成すること、計画グラフのエッジに関する衝突評価を実行すること、計画グラフから１つまたは複数の最適化された結果を特定すること、計画グラフのエッジに関連する掃引体積の離散化された表現と、ロボット１０２が動作する環境内の障害物の離散化された表現との間の衝突を検査することと、最適化がロボット１０２のための衝突のない経路を生成するかどうかを決定すること、ロボット１０２のためのロボットのモーションプラニングを実施すことのうちの１つまたは複数を含むことができるが、それらに限定されない。
【００５９】
図１のロボット１０２は、プロセッサ２１２ａなどの１つまたは複数のプロセッサに知覚データを送る、図２に示すセンサ２８２などのセンサを有する。知覚データは、ボクセルまたはボックスが現在の環境に存在するストリームである。このデータは、プロセッサ２１２ａなどの１つまたは複数のプロセッサによって、占有グリッドの形で生成される（または提供される）。特に、ロボットまたは環境１００内の物体（例えば、障害物）のいずれかを表す場合、それらの表面をボクセル（３Ｄピクセル）またはポリゴンのメッシュ（しばしば三角形）のいずれかとして表すことができる。空間の各離散化された領域は、「ボクセル」と呼ばれ、３Ｄ（ボリュメトリック）ピクセルと等価である。場合によっては、代わりに物体をボックス（矩形プリズム（又は、長方形プリズム／rectangular prism））として表すことが有利である。物体がランダムに成形されていないという事実のために、ボクセルがどのように編成されるかにはかなりの量の構造が存在することがあり、物体内の多くのボクセルは３Ｄ空間内で互いにすぐ隣り合っている。したがって、オブジェクトをボックスとして表すことは、はるかに少ないビットを必要とすることがある（すなわち、ボックスの２つの対向するコーナーについてｘ，ｙ，ｚデカルト座標だけを必要とすることがある）。また、ボックスに対して交差テストを行うことは、ボクセルに対して行うことに匹敵する複雑さである。
【００６０】
多くの実施形態は複数のセンサの出力を組み合わせることができ、センサは、非常に細かい粒度のボクセル化を提供することができる。しかし、ロボット１０２がロボットのモーションプラニングを効率的に実行するために、ロボット１０２のプロセッサ２１２ａは様々な状態間の遷移を行うときに、ロボット１０２によって掃引される３Ｄ空間内の環境および体積を表すために、より粗いボクセル（すなわち、「プロセッサボクセル」）を使用することができる。したがって、システム２００は、それに応じてセンサ２８２の出力を変換することができる。例えば、センサ２８２の出力は各軸上で１０ビットの精度を使用することができ、したがって、センサ２８２から直接生じる各ボクセル（すなわち、「センサボクセル」）は３０ビットＩＤを有し、２３０のセンサボクセルが存在する。システム２００は１８ビットのプロセッサボクセルＩＤに対して、それぞれの軸上で６ビットの精度を（設計時および実行時に）使用し、２１８のプロセッサボクセルが存在する。したがって、プロセッサボクセルごとに２１２のセンサボクセルがある。実行時に、システム２００が、プロセッサボクセル内のセンサボクセルのいずれかが占有されていると判定した場合、システム２００はプロセッサボクセルが占有されていると見なし、それに応じて占有グリッドを生成する。
【００６１】
ロボット１０２のための計画グラフの各エッジはまた、そのエッジによって表されるある状態から別の状態への計画グラフにおける遷移を行うときに、ロボット１０２によって掃引される３Ｄ空間内の体積に対応するいくつかの数のボクセル（またはボックス）を有する。ある状態からそのエッジによって表される別の状態への計画グラフの遷移を行うときにロボット１０２によって掃引されるこれらのボクセルまたはボックスは、計画グラフエッジ情報メモリ２８４などの計画グラフに専用のオフチップメモリに計画グラフの各エッジごとに記憶することができる。様々な他の実施形態では、ある状態からそのエッジによって表される別の状態への計画グラフの遷移を行うときにロボット１０２によって掃引されたボクセルまたはボックスが例えば、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）内のオンチップメモリなどの他の位置に、計画グラフの各エッジごとに格納することができる。
【００６２】
１つの実施形態では、コリジョンアセスメント（又は、衝突の評価）がまず、プロセッサ２１２ａのようなプロセッサに、すべての障害ボクセル（またはボックス）をストリーミングすることによって実行される。例えば、環境１００を表す障害物ボクセル（又はボックス）が、障害物Ａ１１２及び障害物Ｂ１０４を含んで、プロセッサ２１２ａにストリームされて環境メモリ２９４に保存され得る。環境メモリ２９４は、プロセッサ２１２ａのオンチップメモリである。いくつかの実施形態では、環境メモリ２９４がフィールドプログラマブルゲートアレイ（ＦＰＧＡ）内のブロックＲＡＭ（ＢＲＡＭ）であってもよい。ある実施形態では、ＢＲＡＭが数キロビットのランダム・アクセス・メモリを含む専用の構成可能な２ポート・メモリ・ユニットであってもよい。ＦＰＧＡは、これらのブロックのいくつかを含む。次に、ロボット１０２に対する計画グラフの各エッジに対するエッジ情報は計画グラフエッジ情報メモリ２８４からのように、計画グラフに充てられたオフチップメモリからストリーミングされる。エッジボクセル（またはボックス）ごとに、エッジの掃引体積からストリーミングインされるとき、それが障害物ボクセル（またはボックス）のいずれかと衝突する場合、プロセッサ２１２ａは、計画グラフ内のそのエッジとの衝突を判定する。
【００６３】
例えば、エッジボクセルが計画グラフのエッジｘの掃引体積（又は、掃引体積）からストリーミングされるとき、プロセッサ２１２ａは、エッジボクセルを環境メモリ２９４に記憶された全ての障害物ボクセル（又はボックス）と比較するためにブール回路（Boolean circuity）を使用することができる。システム２００が比較に基づいて、エッジボクセルが障害物ボクセル（またはボックス）のいずれかと衝突すると判定した場合、システム２００は、エッジｘとの衝突に注目する（又は、衝突を記録する）。この実施形態は、衝突評価が計画グラフのすべてのエッジ上で並行して実行される他の設計と比較して、衝突評価においてはるかに大きな計画グラフを使用することを可能にするので、衝突評価の技術を改善する。特に、これは、プロセッサチップ回路上に記憶することができる限られた量の計画グラフ情報に関して、他の設計の欠点を克服するのに役立つ。本明細書で説明する衝突評価方法を使用すると、環境メモリ２９４などのオンチップ記憶装置は、多くの場合、すべての障害物ボックスを記憶するのに十分である（ボクセルを使用するほどではない場合があるが）。これは、より安価なオフチップ記憶装置に大きな計画グラフおよび／または複数の計画グラフを記憶する能力を提供する。例えば、これは大きな計画グラフおよび／または複数の計画グラフを、いくつかの実施形態ではダイナミックランダムアクセスメモリのような安価なタイプのメモリである計画グラフエッジ情報メモリ２８４に記憶する能力を提供する。
【００６４】
様々な実施形態では、そのような動作が完全にハードウェア回路で、またはシステムメモリ２１４などのメモリストレージに格納されたソフトウェアとして実行され、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、グラフィックス処理ユニット（ＧＰＵ）プロセッサ、プログラムドロジックコントローラ（ＰＬＣ）、電気的プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）などの１つまたは複数のハードウェアプロセッサ２１２ａによって、またはメモリストレージに格納されたハードウェア回路およびソフトウェアの組合せとして実行され得る。
【００６５】
また、知覚、計画グラフ構築、衝突検出、および経路探索の様々な関連する態様の実施は２０１７年６月９日に出願された国際特許出願第ＰＣＴ／ＵＳ２０１７／０３６８８０号、発明の名称「自動車および再構成可能な移動処理装置のための移動計画」、２０１６年１月５日に出願された国際特許出願第ＷＯ２０１６／１２２８４０号、発明の名称「特定のロボット移動ハードウェアおよびその製造方法および使用方法」、ならびに平成３０年１月１２日に出願された「動的オブジェクトを有する環境における自動車の移動を容易にするための装置、方法及び物品」という名称の米国特許出願第／６１６，７８３にも記載され、これらはその全体が参照により本明細書に組み込まれる。当業者は例示された実施形態、並びに他の実施形態がロボット、ハンドヘルドデバイス、マイクロプロセッサベース又はプログラマブルコンシューマエレクトロニクス、パーソナルコンピュータ（「ＰＣ」）、ネットワーク化されたＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含む、他のシステム構造及び構成及び／又は他のコンピューティングシステム構造及び構成で実施され得ることを理解するであろう。実施形態またはその一部は、（例えば、設計時および事前実行時に）通信ネットワークを介してリンクされたリモート処理デバイスによってタスクまたはモジュールが実行される分散コンピューティング環境で実施することができる。分散コンピューティング環境では、プログラムモジュールがローカルおよびリモート・メモリ記憶装置またはメディアの両方に配置されてもよい。しかしながら、ロボットのモーションプラニングを改善するのを助けるためには、ある種の情報がどこにどのように記憶されるかが重要である。
【００６６】
例えば、種々のロボットのモーションプラニングソリューションはロードマップ（すなわち、計画グラフ）をプロセッサに「焼き付け」し、ロードマップ内の各エッジはプロセッサの再構成不可能なブール回路に対応する。計画グラフがプロセッサに「焼き付け」される設計が複数または大規模な計画グラフを格納するために、限定されたプロセッサ回路を有するという問題を生じる。
【００６７】
１つの解決策は、計画グラフ情報をメモリ記憶装置に配置する再構成可能設計を提供する。このような解決策では再び、計画グラフの各エッジについての情報が存在するが、この情報は回路に焼き付けされる代わりにメモリに記憶される。各エッジはロボット１０２の動作に対応し、各動作は、３Ｄ空間内の体積（又は、体積）を掃引する。この掃引体積はいくつかの障害物ボクセル（またはボックス）と衝突するが、様々な実施形態では障害物を表すことが決定されてもよい。このような解決策では、このエッジが衝突するボクセルがメモリに記憶される情報である。
【００６８】
本開示はより効率的な方法で実行時に複数の計画グラフ間で動的に切り替える（すなわち、プロセッサを再構成する）ことを提供し、他の設計を超えるいくつかの改善を提供する解決策を提供する。例えば、物体を把持することができるエンドエフェクタを有するロボットを考える。何かを保持しているときと、何かを保持していないときとで、ロボットアームが３Ｄ空間の異なる部分に衝突する。一例は、エンドエフェクタを有するアームの端部に大きなボールを保持するロボットアーム１０６である。ロボット１０２が何かを保持している場合、ロボット１０２が「何も保持していない」ときに対応する計画グラフは機能しない。逆に、ロボット１０２が何も保持していない場合であっても、「何かを保持している」計画グラフを非常に控えめに使用することができるが、それは非効率的であり、ロボット１０２が最大の可能なオブジェクトを保持しているシナリオに対応する単一の計画グラフの使用を必要とする。代わりに、様々な実施形態ではシステム２００が異なる可能な特性に対応する計画グラフのファミリー、例えば、「何も保持していない」、「サイズｘの小さい球を保持している」、「サイズｙの矩形プリズムを保持している」などを構築する。これらの計画グラフはロボット１０２が物を拾い上げ、それらを下に置くときに、プロセッサ２１２ａによって計画グラフエッジ情報メモリ２８４に入れたり、そこから出したりすることができる。この解決策は、エンドエフェクタが時々変化するロボットにも適用される。例えば、ロボット１０２は、第１のセットの寸法を有する第１のエンドエフェクタを有する構成であってもよい。この第１のエンドエフェクタは、第２の寸法セットを有する第２のエンドエフェクタと交換されてもよい。第１のエンドエフェクタが第２の寸法セットの第２のエンドエフェクタと交換されると、ロボット１０２は、第２のエンドエフェクタを有する異なる配置になる。第２の寸法セットの寸法が第１の寸法セットの寸法と異なる場合、ロボットによって掃引される体積は、エンドエフェクタが入れ替わると変化する。また、例えば、ロボットが自律型または部分的に自律型の車両である場合、車両は第１の期間の間、第１の配置において第１のセットの寸法を有し、同じ車両は、第２の期間の間、第２の配置において第２のセットの寸法を有することができる。例えば、車両は第１の構成では空であり、第２の構成では完全に積載されており、それにより車両の重量が変化し、場合によっては、例えば、曲がり角またはカーブの周りをコーナリングするときに、道路上の車両の高さ、車両の下のクリアランス、または車両の軌道さえも変化し得る。第２の寸法の組の寸法が第１の寸法の組の寸法と異なる場合、車両によって掃引される容積は、第１の構成と第２の構成との間で変化する。同様に、第１の配置と第２の配置との間で軌道が変化する場合には、車両によって掃引される容積が配置間で変化する。したがって、システム２００は、異なるエンドエフェクタについて、異なる計画グラフを計画グラフエッジ情報メモリ２８４に格納する。
【００６９】
計画グラフは構築するのにかなりの時間とリソースを要するが、ここで提供される解決策では実行時などの前に一度だけ実行することが必要なだけである。いったん計画グラフが生成されると、それらはすべて計画グラフエッジ情報メモリ２８４に記憶されてもよく、プロセッサ２１２ａがそれらをインおよびアウトにスワップ（交換）するか（すなわち、スワップインおよびスワップアウトするか）、またはロボットが特定のサイズの物体を把持しているときなど、ロボット１０２の現在の特性に基づいてどちらを使用するかを選択することは、比較的迅速かつ効率的である。
【００７０】
上述のように、いくつかの前処理アクティビティは実行時（又は、ランタイム）の前に実行することができ、したがって、いくつかの実施形態では、これらの動作が通信ネットワークを介してネットワークインターフェース２６０を介してロボット制御システム２００にリンクされたリモート処理デバイスによって実行することができる。例えば、プログラミング段階は、関心のある問題に対するロボットの準備を可能にする。そのような実施形態では、実行時計算を回避するために、広範囲の前処理が活用される。ロードマップ内のエッジによって表される１つの状態から別の状態への計画グラフ内の遷移を行うときにロボット１０２によって掃引される３Ｄ空間内の体積に関する事前計算されたデータは、計画グラフエッジ情報メモリ２８４に格納され、実行時にプロセッサ２１２ａによってアクセスされ得る。システム２００はまた、実行時中に起こり得るロボットの異なる可能な変化する寸法特性に対応して実行時の前に、一群の計画グラフ（計画グラフのファミリー）を構築してもよい。次に、システム２００は、このような計画グラフを計画グラフエッジ情報メモリ２８４に記憶する。
【００７１】
実行時フェーズの間、センサ２８２は、プロセッサ２１２ａに認識データ（知覚データ／perception data）を送信する。認識データは現在の環境に存在し、オンチップ環境メモリ２９４に格納されているボクセルまたはボックスのストリームであってもよい。環境メモリ２９４から検索された認識データを計画グラフエッジ情報メモリ２８４に記憶された情報と比較するためにブール回路を使用して、プロセッサ２１２ａはどの運動が衝突を回避するかを計算し、ロボット１０２が従うべき計画グラフ内の対応する経路を選択する。次に、プロセッサ２１２ａが動作し、結果として生じる経路をアクチュエータシステム２６６に戻す。
【００７２】
図２は、プロセッサ２１２ａによって表される１つまたは複数のプロセッサと、システムメモリ２１４、計画グラフエッジ情報メモリ２８４、およびディスクドライブ２２４に関連するコンピュータ可読媒体２２６などの１つまたは複数の関連する非一時的機械可読記憶媒体とを備える、ロボット１０２用のものなどのロボット制御システム２００を示す。システムメモリ２１４、計画グラフエッジ情報メモリ２８４、およびディスクドライブ２２４に関連するコンピュータ可読媒体２２６を含む、関連する一時的でないコンピュータまたはプロセッサ可読記憶媒体は、システムバス２１６などの１つ以上の通信チャネルを介してプロセッサ２１２ａに通信可能に結合される。システムバス２１６は、メモリコントローラを備えたメモリバス、周辺バス、および／またはローカルバスを含む、任意の既知のバス構造またはアーキテクチャを採用することができる。１つまたは複数のセンサ２８２およびアクチュエータシステム２６６も、システムバス２１６を介してプロセッサ２１２ａに通信可能に結合される。このようなコンポーネントの１つ以上は例えば、ユニバーサルシリアルバス３．０、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、またはＴｈｕｎｄｅｒｂｏｌｔ（登録商標）を介して、１つ以上のパラレルケーブル、シリアルケーブル、または高速通信が可能なワイヤレスネットワークチャネルなど、１つ以上の他の通信チャネルを介して、互いに通信する場合もあれば、その代わりに通信する場合もある。
【００７３】
また、ロボット制御システム２００はネットワークインターフェース２６０を介してロボット制御システム２００の様々な構成要素に直接通信可能に結合または間接通信可能に結合された遠隔システム、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ウルトラポータブルコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルコンピュータ（図示せず）に通信可能に結合されてもよい。そのような遠隔システムはロボット制御システム２００およびロボット制御システム２００内の様々な構成要素とプログラムし、構成し、制御し、またはさもなければインターフェースし、またはそれらにデータを入力するために使用されてもよい。このような接続はインターネットプロトコルを使用する１つ以上の通信チャネル、例えば、インターネットを介して、１つ以上のワイドエリアネットワーク（ＷＡＮ）を介してもよい。上述したように、実行前計算（例えば、計画グラフのファミリーの生成）はロボット１０２または他のロボットとは別個のシステムによって実行することができ、一方、システム２００がロボット１０２の物理的寸法の変化にリアルタイムで反応するように計画グラフを変更することができることが重要であるため、実行時計算は、ロボット１０２上にあるプロセッサ２１２上で実行することができる。
【００７４】
別段の記載がない限り、図２に示される様々なブロックの構造および動作は従来の設計のものであるか、または２０１７年６月９日出願の国際特許出願第ＰＣＴ／ＵＳ２０１７／０３６８８０号「自動車用車両および再構成可能な移動計画処理装置のための移動計画（MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS）」、２０１６年１月５日出願の国際特許出願第ＷＯ２０１６／１２２８４０「特殊なロボット運動計画ハードウェアとその作成および使用方法（SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME）」、および／または２０１８年１月１２日出願の米国特許出願第６２／６１６，７８３号「動体を有する環境における自動車の移動計画を容易にするための装置、方法および物品（APPARATUS, METHOD AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC OBJECTS）」に記載されており、それらの全体が参照により本明細書に組み込まれる。その結果、そのようなブロックは参照により本明細書に組み込まれる参考文献を考慮して、関連技術の当業者によって理解されるように、さらに詳細に説明される必要はない。
【００７５】
ロボット制御システム２００は、１つまたは複数の処理ユニット２１２と、システムメモリ２１４と、計画グラフエッジ情報メモリ２８４と、システムメモリ２１４および計画グラフエッジ情報メモリ２８４を含む様々なシステム構成要素を処理ユニット２１２に結合するシステムバス２１６とを含み得る。いくつかの実施形態では、計画グラフエッジ情報メモリ２８４がシステムメモリ２１４であってもよく、またはその一部であってもよい。処理ユニットは、１つまたは複数の中央処理ユニット（ＣＰＵ）２１２ａ、デジタル信号プロセッサ（ＤＳＰ）２１２ｂ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの任意の論理処理ユニットとすることができる。システムメモリ２１４は読取り専用メモリ（「ＲＯＭ」）２１８およびランダム・アクセス・メモリ（「ＲＡＭ」）２２０を含むことができ、計画グラフエッジ情報メモリ２８４はＤＲＡＭなどのＲＡＭを含むことができ、ＲＯＭ２１８の一部を形成することができる基本入出力システム（「ＢＩＯＳ」）２２２は、起動中などにロボット制御システム２００内の要素間で情報を転送するのを助ける基本ルーチンを含む。
【００７６】
ロボット制御システム２００は例えば、ハードディスクから読み書きするためのハードディスクドライブ、リムーバブルフラッシュメモリデバイスから読み書きするためのフラッシュメモリドライブ、リムーバブル光ディスクから読み書きするための光ディスクドライブ、または磁気ディスクから読み書きするための磁気ディスクドライブとすることができるディスクドライブ２２４を含み得る。ロボット制御システム２００はまた、様々な異なる実施形態において、そのようなディスクドライブの任意の組み合わせを含んでもよい。ディスクドライブ２２４は、システムバス２１６を介して処理ユニット２１２と通信することができる。ディスクドライブ２２４は当業者に知られているように、そのようなドライブとシステムバス２１６との間に結合されたインターフェースまたはコントローラ（図示せず）を含み得る。ディスクドライブ２２４およびその関連するコンピュータ可読媒体２２６は、コンピュータ可読命令、データ構造、プログラムモジュール、およびロボット制御システム２００のための他のデータの不揮発性記憶装置を提供する。当業者は、ＷＯＲＭドライブ、ＲＡＩＤドライブ、磁気カセット、デジタルビデオディスク（「ＤＶＤ」）、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭ、スマートカードなど、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体を使用することができることを理解するであろう。
【００７７】
プログラムモジュールは、オペレーティングシステム２３６、１つ以上のアプリケーションプログラム２３８、他のプログラムまたはモジュール２４０、プログラムデータ２４２などのシステムメモリ２１４に記憶することができる。アプリケーションプログラム２３８はプロセッサ２１２に、計画グラフのエッジに関連するロボット掃引体積の１つまたは複数の離散化された表現を生成すること、ロボット掃引体積の離散化された表現を生成するために、いくつかの離散化のうちのどれを使用するかを決定すること、ロボットが動作する環境１００の離散化された表現を生成すること環境１００における障害物を含む、複数の離散化された表現を生成するために使用すること、複数の計画グラフのうちのどれを使用するかを決定すること、決定された複数の計画グラフおよびエッジ情報のそれぞれのセットを記憶すること、計画グラフのノードによって表される状態の間を遷移する際にロボットの少なくとも一部によって掃引される体積を表す情報を生成すること、計画グラフのエッジに関する衝突評価を実行すること、計画グラフから１つまたは複数の最適化された結果を特定すること、計画グラフのエッジに関連する掃引体積の離散化された表現とロボット１０２が動作する環境１００内の障害物の離散化された表現との間の衝突を検査すること、最適化がロボットのための衝突のない経路を生成するかどうかを決定すること、およびロボットのためのロボットのモーションプラニングを実施することのうちの１つまたは複数を実行させる命令を含み得る。アプリケーションプログラム２３８は本明細書および参照により本明細書に組み込まれる参考文献に記載されるように、プロセッサ２１２に（センサ２８２を介して）知覚、計画グラフ構築、衝突検出、および経路探索の他の動作を実行させる、１つまたは複数の機械可読命令セットをさらに含み得る。
【００７８】
アプリケーションプログラム２３８はさらに、プロセッサ２１２に、ロボット１０２が異なる寸法を有するときに対応する状態間の遷移においてロボット１０２によって掃引される異なる体積を表す計画グラフエッジ情報のそれぞれのセットを生成させ、計画グラフエッジ情報のそれぞれのセットに対応する計画グラフエッジ情報メモリ２８４に複数の計画グラフを記憶させる、１つまたは複数の機械可読命令セットを含み得る。
【００７９】
アプリケーションプログラム２３８はさらに、ロボット１０２が動作する環境１００の第１の離散化表現について、環境メモリ２９４に環境１００の第１の離散化表現の少なくとも一部を供給及び格納し、計画グラフの各エッジについて、計画グラフエッジ情報メモリ２８４にエッジ情報のそれぞれのセットを提供及び格納し、対応する遷移がロボット１０２の少なくとも一部と、環境１００内の障害物Ａ１１２および障害物Ｂ１０４などの１つまたは複数の障害物の少なくとも一部との間の衝突をもたらすことになる計画グラフのエッジのいずれかを特定する、１つまたは複数の機械可読命令セットをプロセッサ２１２に含ませることができる。
【００８０】
「環境」という用語は本例では障害物を含むロボットの現在の作業空間を指すために使用される。「タスク」という用語が本例ではロボット１０２がその環境内の障害物と衝突することなく、位置Ａから位置Ｂに到達しなければならない（おそらく、何かを把持または落とす）ロボットタスクを指すために使用される。「シナリオ」という用語は本例では環境／タスクの対のクラスを指すために使用される。例えば、シナリオは「三脚テーブルを有する所与の範囲内のサイズおよび形状を有するｘ障害物とｙ障害物との間の環境内のピック・アンド・プレースタスク」とすることができる。このような基準に適合する多くの異なるタスク／環境の対が、目標の位置、障害物のサイズおよび形状に応じて存在し得る。システム２００は、ネットワークインターフェース２６０を介して通信ネットワークを介してリンクされる１つ以上の遠隔処理装置を含んでもよい。そのような１つまたは複数のリモート処理デバイスはシステム２００にロボット１０２が様々な異なるシナリオのタスクおよび環境の対に対して動作する環境１００の表現のそれぞれの離散化を生成させる、１つまたは複数の機械可読命令セットを実行することができる。例示的な実施形態では、それぞれの離散化のうちの少なくとも２つはボクセルのそれぞれのセットを含む。それぞれの離散化のボクセルは、それぞれの離散化においてサイズおよび形状のうちの少なくとも１つにおいて非均一であってもよい。また、それぞれの離散化のボクセルの不均一性のそれぞれの分布は、互いに異なっていてもよい。具体的には離散化がそれぞれのボクセルのセットを含むことができ、それぞれの離散化のうちの少なくとも２つのボクセルはそれぞれの離散化においてサイズおよび形状のうちの少なくとも１つにおいて不均一であり、それぞれの離散化のうちの少なくとも２つのボクセルの不均一性のそれぞれの分布は互いに異なる。アプリケーションプログラム２３８はプロセッサ２１２にロボットが動作する環境１００の表現の生成されたそれぞれの離散化の有効性を評価させ、特定のシナリオに対して最も有効であると評価される生成されたそれぞれの離散化を記憶させる、１つまたは複数の機械可読命令セットを含み得る。
【００８１】
アプリケーションプログラム２３８はロボット１０２が実行するタスクと、ロボットが動作する環境１００とのペアを分類する特定されたシナリオに基づいて、プロセッサ２１２に、ロボット１０２の１つの状態とロボット１０２の別の状態との間で遷移するときにロボット１０２が通過するそれぞれの領域を表すいくつかの掃引体積を生成するために、いくつかの離散化のうちのどれを使用するかを決定させ、計画グラフ内の複数のエッジのそれぞれについて、決定された離散化を使用してエッジのそれぞれの掃引体積を決定させる、１つまたは複数の機械可読命令セットをさらに含み得る。アプリケーションプログラム２３８はさらに、プロセッサ２１２に、特定されたシナリオに対して最も有効であると評価される、ロボット１０２が動作することになる環境１００の表現の決定された掃引体積のそれぞれの離散化を記憶させる、１つまたは複数の機械可読命令セットを含み得る。
【００８２】
アプリケーションプログラム２３８はさらに、ロボットが動作する環境１００とロボット１０２が実行するタスクの対を分類する特定されたシナリオとに少なくとも部分的に基づいて、プロセッサ２１２に、環境１００の離散化された表現を生成するためにいくつかの離散化のうちのどれを使用すべきかを決定させる、１つまたは複数の機械可読命令セットを含み得る。アプリケーションプログラム２３８はさらに、プロセッサ２１２に、環境１００を感知する１つまたは複数のセンサ２８２によって生成されたセンサ情報を受信し、判定された離散化を使用して環境内に障害物がある場合にはそれを含む環境の離散化表現を生成させる１つまたは複数の機械可読命令セットを含み得る。決定された離散化の複数のボクセルはそれぞれの離散化内でサイズおよび形状のうちの少なくとも１つについて不均一であってもよく、決定された離散化のボクセルの不均一性のそれぞれの分布はいくつかの離散化のうちの別の１つのボクセルの不均一性の分布と異なってもよい。
【００８３】
アプリケーションプログラム２３８はさらに、プロセッサ２１２に、ロボットが動作する環境における計画グラフのエッジと任意の障害物との間の複数の計画グラフについての衝突検査を実行させる、１つまたは複数の機械可読命令セットを含み得る。プロセッサ２１２は各計画グラフに対してこのような衝突検査を実行し、それに応じて計画グラフを一時的に更新し、最適化を実行し、更新された計画グラフからの最適化された結果が満足条件を満たすかどうか（もしあれば）を判定することができる。満足条件が満たされない場合、プロセッサ２１２は次の計画グラフに移動し、同じ動作を実行してもよい。満足条件が満たされる計画グラフが見つかると、プロセッサ２１２は、満足条件を満たす計画グラフからの最適化された結果のうちの１つによって特定される遷移をロボット１０２に適用する。
【００８４】
アプリケーションプログラム２３８はさらに、プロセッサ２１２に、図６〜図１０に示される方法を含むが、これに限定されない、本明細書に記載される様々な他の方法を実行させる、１つまたは複数の機械可読命令セットを含み得る。
【００８５】
様々な実施形態では上述の動作のうちの１つまたは複数がシステム２００の１つまたは複数のリモート処理デバイスによって実行することができ、これらのデバイスはネットワークインターフェース２６０を介して通信ネットワークを介して、またはロボット１０２上に配置された１つまたは複数のプロセッサ２１２によってリンクされる。
【００８６】
図２にはシステムメモリ２１４に記憶されるように示されているが、オペレーティングシステム２３６、アプリケーションプログラム２３８、他のプログラム／モジュール２４０、およびプログラムデータ２４２はディスクドライブ２２４の関連するコンピュータ読み取り可能媒体２２６上に記憶することができる。
【００８７】
プロセッサ２１２は、１つまたは複数の中央処理装置（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの任意の論理処理装置とすることができる。商業的に利用可能なコンピュータシステムの非限定的な例としては米国インテルＯＢＣｏｒｐｏｒａｔｉｏｎによって提供されるマイクロプロセッサのＣｅｌｅｒｏｎ、Ｃｏｒｅ  ２、Ｉｔａｎｉｕｍ、およびＸｅｏｎファミリー、米国アドバンストマイクロデバイスによって提供されるＫ８、Ｋ１０、Ｂｕｌｌｄｏｚｅｒ、およびＢｏｂｃａｔシリーズマイクロプロセッサ、米国アップルコンピュータによって提供されるＡ５、Ａ６、およびＡ７シリーズマイクロプロセッサ、米国Ｑｕａｌｃｏｍｍ、Ｉｎｃ．によって提供されるＳｎａｐｄｒａｇｏｎシリーズマイクロプロセッサ、米国Ｏｒａｃｌｅ  Ｃｏｒｐ．によって提供されるＳＰＡＲＣシリーズマイクロプロセッサが挙げられるが、これらに限定されない。別途記載されない限り、図２に示される種々のブロックの構成および動作は、従来の設計のものである。その結果、そのようなブロックは当業者によって理解されるように、本明細書でさらに詳細に説明される必要はない。
【００８８】
図３はロボット１０２が動作することができる図１の環境１００の概略図であり、図示された一実施形態に従い、３Ｄ空間内の１つの位置から３Ｄ空間内の別の位置へと移行するロボット１０２と、環境１００内の３Ｄ空間内の１つの位置から別の位置へと移行するロボットの付属肢によって掃引された体積の表現を示す。
【００８９】
図３に示す例では、ロボット１０２が２つの付属肢、アーム１０６およびアーム１０８を有するものとして示されている。一例ではロボットが図３に示すように、アーム１０６を第１の位置から第２の位置に移動させることによって、３Ｄ空間内の位置を変化させることができる。図３に示すように、アーム１０６を第１の位置から第２の位置に移動させることによって、３Ｄ空間内のある位置と３Ｄ空間内の別の位置との間の移行を行う場合、ロボット１０２によって掃引される３Ｄ空間内の容積は領域３０２によって表される。しかし、図３に示すように、このような遷移は、ロボットアーム１０６を領域３０４内の障害物Ａ１１２に衝突させることになる。
【００９０】
したがって、衝突の回避を容易にするために、設計時（実行時の前）に、１つまたは複数の計画グラフがシステム２００によって生成され、１つの状態から別の状態への様々な遷移を行うときに、ロボット１０２によってどの領域が占有されるかが判定される。例えば、ロボット１０２のための計画グラフのエッジは、領域３０２に対応するロボット１０２によって掃引された３Ｄ空間内の体積に対応するいくつかの数のボクセル（またはボックス）を有する。計画グラフ内の対応する遷移を行うときに領域３０２に対応するロボット１０２によって掃引されたボクセルまたはボックスは、計画グラフエッジ情報メモリ２８４などの、計画グラフに専用のオフチップメモリ内の計画グラフのエッジに対応するものとして記憶することができる。次に、実行時に、障害物Ａ１１２（および障害物Ｂ１０４も含む）を含む環境１００を表す障害物ボクセル（またはボックス）は、占有グリッドの形でプロセッサ２１２ａにストリーミングされ、オンチップ環境メモリ２９４に記憶される。システム２００は（占有グリッドに基づいて）どのボクセルが占有されているかを決定し、現在占有されているボクセルと衝突する動きを使用しないことを決定する。特に、エッジの掃引体積の一部を表すエッジボクセル（またはボックス）ごとに、計画グラフエッジ情報メモリ２８４からストリーミングされるとき、プロセッサは、占有グリッドに基づいて、環境メモリ２９４に記憶されている障害ボクセル（またはボックス）のいずれかと衝突するか否かを決定する。エッジボクセル（またはボックス）が障害物ボクセル（またはボックス）のいずれかと衝突する場合、システム２００は計画グラフ内のそのエッジとの衝突を判定し、計画グラフ内のそのエッジに関連するロボット１０２の動きを使用しないと判定する。
【００９１】
例えば、図３に示すロボットアーム１０６の運動を実行する前に、システム２００は、計画グラフエッジメモリ２８４から適用可能な計画グラフの全てのエッジのエッジボクセル（又はボックス）を流し始める。各エッジについて、プロセッサ２１２ａが各エッジ・ボクセル（又はボックス）に出会うと、任意のエッジ・ボクセル（又はボックス）が環境メモリ２９４に記憶された（障害物Ａ１１２のためのものを含む）障害ボクセル（又はボックス）のいずれかと衝突するかどうかをチェックする。図３に示すように、環境メモリ２９４に記憶された障害物Ａ１１２の障害物ボクセル（またはボックス）は占有グリッドに従って同じ領域を占有するので、領域３０４内の任意のエッジボクセル（またはボックス）はこのような衝突を生じる。プロセッサ２１２ａは障害物ボクセル（又はボックス）のいずれかと衝突するエッジボクセル（又はボックス）に出会うとすぐに、その後、プロセッサ２１２ａは、計画グラフのそのエッジを使用しないことを決定する。計画グラフのエッジの処理が終了すると、プロセッサ２１２ａは、環境メモリ２９４に記憶された障害物ボクセル（またはボックス）と衝突すると判定されなかった残りのエッジを使用して、ロボットを初期位置から目標位置に移動させる計画グラフ内の経路を判定する。
【００９２】
システム２００はまた、各計画グラフによって表される掃引体積をどのように表すか、ならびに環境１００内の障害物をどのように表すかに関する決定を行うことができる。そのような決定は例えば、掃引体積をボクセルまたはボックスで表すかどうか、使用するボクセルまたはボックスの形状およびサイズ、使用するボクセルまたはボックスのサイズおよび／または形状が不均一である離散化を使用するかどうか、およびどのシナリオでボクセルまたはボックスの異なる形状および／またはサイズを使用するかなど、どのように離散化を実行すべきかに関してプロセッサ２１２ａによって行われる決定を含み得る。様々な実施形態では計画グラフのそれぞれによって表される掃引体積をどのように表すか、ならびに環境１００内の障害物をどのように表すかに関する決定を行うための上述の１つまたは複数のそのような動作はネットワークインターフェース２６０を介して通信ネットワークを介してリンクされるシステム２００の１つまたは複数のリモート処理デバイスによって、またはロボット１０２上に位置する１つまたは複数のプロセッサ２１２によって実行され得る。
【００９３】
特に、システム２００は、ロボット１０２の作業空間をボクセルに離散化することを決定することができる（これは後でボックスにグループ化することができる）。１つの実装例は、３次元の各々において均一な量子化を実行する。しかしながら、ロボットの作業空間の異なる部分においてより小さい／より大きい非立方体形状のボクセルおよび／またはボクセルを有することが有利であり得る。例えば、一実施形態はロボット１０２の正面の空間においてより小さなボクセル（より細かい解像度）を使用し、ロボットが到達する最遠端のところでより大きなボクセル（より粗い解像度）を使用する。したがって、様々な実施形態は、非均一量子化および／または非立方体形状ボクセルを使用することができる。本開示はまた、システム２００がボクセルサイズおよび／または形状をどのように選択するかについてのアルゴリズムを提供する。
【００９４】
一実施形態では、実行時間の前に実行のためのトレーニングアルゴリズム（訓練アルゴリズム）を使用して、様々な異なるシナリオに対してどのボクセルサイズおよび形状を使用するのがよいかを決定する。システム２００は、１つまたは複数のシナリオからのタスク／環境ペアの所与のまたは生成された大きなセットを使用することによってトレーニングされる。次いで、システム２００は、トレーニングサンプルの大きなセットにわたって最も効果的であると評価される離散化を選択する。
【００９５】
例えば、任意の所与の環境／タスク対に対して、最適な離散化（または等しく最適な複数の離散化）が存在する。システム２００はＴ個の環境／タスクペア（ここで、Ｔは多数である）をテスト／トレーニングし、次いで、それぞれについて最適な離散化を記録し得る。これは多くの異なる離散化をもたらす場合があり、その各々は１つのみまたは少数の環境／タスク対に対して最適である。すべてのＴ個の環境／タスク対をテストした後、システムは、サンプルのセット全体にわたって最も有効であると評価される離散化を選択する。このアプローチはまた、取り扱いにくいあらゆる可能な環境／タスク対に対してあらゆる可能な離散化を試みることを含む。
【００９６】
上記の問題を克服するために、システム２００はシステム２００が有限数の可能な離散化Ｇを考慮することを除いて、上記で説明したようなトレーニングを実行する。各環境／タスク対に対して、システムは、提供されたＧ個の離散化のうちのどれが最も効果的であると評価されるかを記録する。全てのＴ個の環境／タスク対を処理した後、システム２００は、最も多くの環境／タスク対において最も効果的であると評価される離散化を選択する。
【００９７】
一例として、ロボット１０２は、その前方の空間のボックスに面していてもよい。システムは６ビットが各次元における位置を記述するために使用されるように、スペースを離散化することを決定してもよい（すなわち、各軸上に２６の位置があり得る）。これにより、それぞれが一意の１８ビットＩＤを持つ２１８のボクセルが生成される。設計時に、システム２００はあらゆるエッジの動きについて掃引体積を事前計算し、それをその掃引体積内のボクセルＩＤの集合として記録する。掃引体積がボクセルと部分的に交差する場合であっても、掃引体積は、その掃引体積内のボクセルＩＤの集合に含まれる。これが、より細かい解像度を使用することがより良い理由である。次に、実行時に、センサ２８２はプロセッサ２１２ａに、ロボット１０２の前に何があるかを知らせるが、予め計算された掃引体積を表すボクセルよりはるかに細かい粒度であり、したがって、システム２００はセンサ入力を処理し、どのボクセルが現在占有されているかをプロセッサ２１２ａに通信する。いくつかの実施形態ではプロセッサ２１２ａがセンサ入力を処理し、他の実施形態ではセンサ入力を処理してプロセッサ２１２ａに通信するセンサ２８２のプロセッサなどの別個のプロセッサがある。プロセッサ２１２ａは環境メモリ２９４に記憶されている情報に基づいて現在環境にあるボクセルまたはボックスを、計画グラフエッジ情報メモリ２８４に記憶されている計画グラフエッジ情報の各エッジに対して記載されているボクセルまたはボックスと比較し、現在どのエッジが衝突しているかを決定する。そのような実施形態では、比較を可能にするために、実行時と同じ離散化が設計時に使用されることが重要である。
【００９８】
システム２００が非均一離散化を使用することを選択するとき、システム２００は１８ビットのボクセルＩＤおよび２１８ボクセルを依然として使用してもよいが、ボクセルはキューブである必要はない（またはそれらは同じサイズでないキューブであってもよい）。この場合も、この実施形態では、システムが実行時と同じ離散化を設計時に使用することが重要である。非均一離散化を使用する場合、システム２００は設計時および実行時に使用され、最も効果的であると評価されるボクセルサイズおよび形状をシステムが選択するように、上述のようなトレーニングを使用して、各ボクセルのサイズおよび形状が何であるかを選択する。そのようなトレーニングで使用される評価基準は解決することができるタスクの割合（例えば、システム２００が、ロボット１０２の目標を達成するための何らかの衝突のない経路を見出すことができる）および見出される経路の質に関する基準を含んでもよい。
【００９９】
図４Ａは１つの例示的実施形態に従った図１および図３のロボット１０２のための例示的ロボットの計画グラフ４００のエッジを含むモーションプラニンググラフ４００であり、エッジについて、ロボット１０２と環境１００内の１つ以上の障害物との間の衝突をもたらすであろう対応する遷移が決定されている。図４Ｂは１つの例示としての実施形態に従った例示としてのロボットのモーションプラニンググラフ４００であり、対応する遷移がロボット１０２と環境１００内の１つ以上の障害物との間の衝突をもたらすであろうと決定された計画グラフ４００のエッジが除去されている。計画グラフ４００の各ノードはロボット１０２の状態を表し、計画グラフ４００の各エッジは、ロボット１０２のある状態から別の状態への遷移を表す。例えば、エッジ４１０ａは、ノード４０８ａによって表されるロボット１０２の状態とノード４０８ｂによって表されるロボット１０２の状態との間の遷移を表す。エッジ４１０ｉは、ノード４０８ｃによって表されるロボット１０２の状態とノード４０８ｄによって表されるロボット１０２の状態との間の遷移を表す。
【０１００】
ロボット１０２のための計画グラフ４００の各エッジは計画グラフ４００において、そのエッジによって表されるある状態から別の状態への遷移を行うときに、ロボット１０２によって掃引される３Ｄ空間内の体積に対応するいくつかの数のボクセル（またはボックス）を有する。システム２００はロボット１０２の寸法の変化に対応するために、異なる計画グラフを交換することができるように、このような情報は、オフチップ計画グラフエッジ情報メモリ２８４に計画グラフエッジ情報として記憶され得る。実行時に現在の環境を表すセンサ２８２から受け取った情報を使用して、システム２００はどのボクセル（またはボックス）が現在占有されているかを判定し、システム２００は、現在占有されているボクセル（またはボックス）と衝突する動きを使用しないと判定する。
【０１０１】
いくつかの実施形態では、システムが現在の環境（およびその中の障害物）を表すセンサ２８２から受信され、オンチップ環境メモリ２９４に記憶された情報を、計画グラフエッジ情報メモリ２８４に記憶された計画グラフエッジ情報と実行時に比較することによって、占有ボクセル（またはボックス）と衝突するいかなる動きも使用しないことを決定する。この比較に基づいて、システム２００は、どの計画グラフエッジがロボット１０２と環境１００内の１つまたは複数の障害物との間の衝突をもたらす遷移（したがって、どの対応する動き）を表すかを決定する。一例として、図４Ａは、エッジ４１０ｂ、４１０ｃ、４１０ｄ、４１０ｅ、４１０ｆ、４１０ｇ、４１０ｈ、４１０ｉ、４１０ｊ、４１０ｋ、および４１０ｌがロボット１０２と環境１００内の１つまたは複数の障害物との間の衝突をもたらす遷移（したがって、対応する動き）を表すと判定されたことを示す。
【０１０２】
例えば、ロボット１０２がノード４０８ａによって表される状態からノード４０８ｄによって表される状態に移動するという目標を達成するために、ロボット１０２は、ロボット１０２と環境１００内の１つまたは複数の障害物との間の衝突をもたらす遷移を表すと判定されたエッジ４１０ｂ、４１０ｃ、４１０ｄ、４１０ｅ、４１０ｆ、４１０ｇ、４１０ｈ、４１０ｉ、４１０ｊ、４１０ｋおよび４１０ｌによって表される遷移を回避しなければならない。したがって、図４Ｂは、環境１００内の１つまたは複数の障害物と衝突することなく、ノード４０８ａによって表される状態からノード４０８ｄによって表される状態に移動するという目標を達成するためにロボット１０２が従うことができる、システム２００によって特定される計画グラフ４００内の、そのようなエッジが除去された計画グラフおよび潜在的経路４１６を示す。
【０１０３】
図５は、１つの例示としての実施形態に従った、特定の状況に従った異なる計画グラフのエッジ情報を提供することによって、ロボットのモーションプラニングを容易にするためのロボット制御システム２００における動作の方法５００を示すフロー図である。ロボット制御システム２００における動作の方法５００は特定の状況に応じて異なる計画グラフのエッジ情報を提供することによって、ロボットのモーションプラニングを容易にするために、５０２で開始する。
【０１０４】
５０４において、環境内で動作するであろうロボット１０２に対して、システム２００は、複数の計画グラフを決定する。各計画グラフはそれぞれ、複数のエッジによって接続された複数のノードを含み、各ノードは、ロボット１０２のそれぞれの状態を特徴付ける変数を、暗黙的または明示的に表す。各エッジは、ロボット１０２のそれぞれの対の状態間の遷移を表す。それぞれの状態対は、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノード対のそれぞれの１つによって表される。
【０１０５】
５０６において、各計画グラフのエッジのうちの少なくとも２つ以上について、システム２００はそれぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、ロボット１０２の少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成する。少なくとも１つの実施形態では、システム２００が実行時前にそれぞれのエッジ情報のセットを生成する。
【０１０６】
５０８で、システム２００は、複数の計画グラフおよびエッジ情報のセットを少なくとも１つの非一時的プロセッサ可読記憶装置に記憶する。
【０１０７】
５１０において、第１の物理的寸法のセットを有するロボット１０２の少なくとも一部に基づいて、システム２００は、計画グラフのうちの第１のもののエッジ情報のセットを少なくとも１つのプロセッサに提供する。
【０１０８】
５１２において、第２の時間における第２のセットの物理的寸法を有するロボット１０２の少なくとも一部に基づいて、システム２００は、計画グラフのうちの第２のもののエッジ情報の組（又は、セット）を少なくとも１つのプロセッサに提供する。第２の物理的寸法のセットにおける少なくとも１つの寸法は、第１のセットの寸法のうちの対応する１つと異なる。特定の状況に応じて異なる計画グラフのエッジ情報を提供することによってロボットのモーションプラニングを容易にするロボット制御システム２００における動作の方法５００は、５１４で終了する。
【０１０９】
ロボット１０２は、ロボット１０２が動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢を有することができる。ロボット１０２はまた、第１の付属肢に取り付けられた第１のエンドエフェクタを有し得る。第１のエンドエフェクタは少なくとも第１のエンドエフェクタ配置と第２のエンドエフェクタ配置（例えば、把持している配置と把持していない配置）との間で移動するように選択的に動作可能である。システム２００は、第１の付属肢に取り付けられた第１のエンドエフェクタが第１のエンドエフェクタ配置にあると判定することができる。例えば、エンドエフェクタは、把持されていない位置または開いた位置にあってもよい。これは、第１のエンドエフェクタ配置の一例である。把持位置にあるエンドエフェクタは、第２のエンドエフェクタ配置の一例である。第１の物理的寸法のセットは、第１のエンドエフェクタ配置における第１のエンドエフェクタの寸法のセットを表す。特に、第１の物理的寸法のセットは、エンドエフェクタが把握されていない位置にあるときのロボットの物理的寸法である。そのような場合、少なくとも１つのプロセッサに計画グラフのうちの第１のもののためのエッジ情報のセットを提供することは、第１の付属肢に取り付けられた第１のエンドエフェクタが第１のエンドエフェクタ配置にある（すなわち、把持されていない位置または開放位置にある）という決定に応答する。
【０１１０】
また、システム２００は、第１の付属肢に取り付けられた第１のエンドエフェクタが第２のエンドエフェクタ配置にあると判定することができる。例えば、エンドエフェクタは、把持位置または閉鎖位置にあってもよい。これは、第２のエンドエフェクタ配置の一例である。把持されていない又は開いた位置にあるエンドエフェクタは、第１のエンドエフェクタ配置の一例である。第１の付属肢が第２のエンドエフェクタ配置（すなわち、把持位置または閉鎖位置）にある場合、第２の物理的寸法のセットは、第２のエンドエフェクタ配置における第１のエンドエフェクタの寸法のセットを表す。特に、第１の物理的寸法のセットは、エンドエフェクタが把持位置にあるときのロボットの物理的寸法である。次いで、少なくとも１つのプロセッサに計画グラフのうちの第２のもののためのエッジ情報のセットを提供することは、第１の付属肢に取り付けられた第１のエンドエフェクタが第２のエンドエフェクタ配置にある（すなわち、把持されていない位置または開放位置にある）という決定に応答する。
【０１１１】
いくつかの実施形態では、ロボット１０２がロボット１０２が動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢を有し、第１のエンドエフェクタが第１の付属肢に取り付けられる。第１のエンドエフェクタは、少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能である。把持している配置において第１のエンドエフェクタによって占められる容積のサイズまたは形状のうちの少なくとも１つは、把持していない配置において第１のエンドエフェクタによって占められる容積のサイズまたは形状のうちの少なくとも１つとは異なる。そのような場合、システム２００は、第１の付属肢に取り付けられた第１のエンドエフェクタが把持していない配置にあると判定することができる。次いで、少なくとも１つのプロセッサに計画グラフのうちの第１のもののためのエッジ情報のセットを提供することは、第１の付属肢に取り付けられた第１のエンドエフェクタが把持していない配置にあるという決定に応答する。
【０１１２】
図６は図示された一実施形態によるロボット制御システム２００の動作方法６００を示す流れ図であり、対応する遷移が衝突をもたらすであろう計画グラフのエッジを特定することによって、ロボットのモーションプラニングを容易し、この計画グラフは、その各々がロボットの物理的寸法の異なるセットに関連付けられたオフチップメモリに記憶された複数の計画グラフのうちの１つである。対応する遷移が衝突をもたらすであろう計画グラフのエッジを６０２で特定することによってロボットのモーションプラニングを容易にするロボット制御システム２００における動作方法６００は６０２で開始する。
【０１１３】
６０４において、少なくともロボット１０２が動作する環境の第１の離散化表現に対して、システム２００は、環境の第１の離散化表現の少なくとも一部を少なくとも１つのプロセッサに供給する。環境は、１つ以上の障害物によって占有される。
【０１１４】
６０６において、第１の計画グラフの各エッジに対して、システム２００は、少なくとも１つのプロセッサにそれぞれのエッジ情報のセットを提供する。第１の計画グラフは、プロセッサに対して相対的なオフチップメモリに記憶された複数の計画グラフの１つである。複数の計画グラフの各計画グラフは、第１ロボットの物理的次元の異なるセットに関連付けられる。エッジ情報のそれぞれのセットはロボット１０２の一対の状態の間を遷移する際に、ロボット１０２の少なくとも一部によって掃引される体積を表す。ロボット１０２の一対の状態は、第１の計画グラフの一対のノードのそれぞれによって表される。それぞれのノード対のノードは第１の計画グラフのそれぞれのエッジによって結合され、それぞれのエッジはロボット１０２のそれぞれの状態対の間の遷移を表す。
【０１１５】
６０８において、システム２００は、対応する遷移がロボット１０２の少なくとも一部と、環境内の１つ以上の障害物のうちの少なくとも１つの少なくとも一部との間の衝突をもたらすであろう第１の計画グラフのエッジのうちのいずれかを特定する。対応する遷移が６１０で衝突をもたらすであろう計画グラフのエッジを特定することによってロボットのモーションプラニングを容易化するロボット制御システム２００における動作の方法６００は６１０で終了する。
【０１１６】
図７は、１つの例示としての実施形態に従った、ロボット１０２が動作する環境の表現の生成された不均一な離散化の有効性を評価することによって、ロボットのモーションプラニングを容易にするためのロボット制御システム２００における動作の方法７００を示すフロー図である。ロボット１０２が動作する環境の表現の生成された非均一な離散化の有効性を評価することによってロボットのモーションプラニングを容易化するロボット制御システム２００における動作方法７００は、７０２で開始する。
【０１１７】
７０４において、複数の反復のそれぞれに対して、システム２００は、ロボット１０２が動作する環境の表現のそれぞれの離散化を生成する。システム２００は、少なくとも複数のタスクと環境の組のセットを含む第１のシナリオと、少なくとも第１のシナリオのタスクと環境の組の各々に対して、これを実行する。それぞれの離散化のうちの少なくとも２つは、ボクセルのそれぞれのセットを含む。それぞれの離散化のうちの少なくとも２つのボクセルは、それぞれの離散化におけるサイズおよび形状のうちの少なくとも１つにおいて非均一である。それぞれの離散化のうちの少なくとも２つのボクセルの不均一性のそれぞれの分布もまた、互いに異なる。
【０１１８】
７０６において、システム２００は、生成されたロボットが動作する環境の表現のそれぞれの離散化の有効性を評価する。システム２００は、少なくとも複数のタスクと環境の組のセットを含む第１のシナリオと、少なくとも第１のシナリオのタスクと環境の組の各々に対して、これを実行する。
【０１１９】
７０８において、システムは、処理すべきタスクおよび環境のさらなるペアがあるか否かを決定する。システム２００が現在のシナリオについて処理すべきタスクおよび環境のさらなるペアが存在すると判定した場合、方法７００は７０４に戻り、シナリオに含まれるタスクおよび環境のペアのセットについてそれぞれの離散化を生成し続け、７０６でそれらの有効性を評価する。システム２００が、現在のシナリオについて処理すべきタスクおよび環境のさらなる対が存在しないと判定した場合、方法７００は７１０に続く。
【０１２０】
７１０において、システム２００は、少なくとも第１のシナリオに対して最も有効であると評価された、生成されたロボットが動作する環境の表現の少なくともそれぞれの離散化を、少なくとも１つの非一時的プロセッサ可読媒体に格納する。
【０１２１】
７１２で、システム２００は、処理すべきさらなるシナリオがあるかどうかを判定する。システム２００が、処理すべきさらなるシナリオがあると判定した場合、方法７００は７０４に戻り、７０６において、次のシナリオに含まれるタスクおよび環境のペアのセットに関するそれぞれの離散化を生成し続け、それらの有効性を評価する。システム２００が処理すべきさらなるシナリオがないと判断した場合、ロボット１０２が動作する環境の表現の生成された非均一離散化の有効性を評価することによってロボットのモーションプラニングを容易化するためのロボット制御システム２００における動作方法７００は、７１４で終了する。いくつかの実施形態では、複数のシナリオに関連付けられた１つの計画グラフがあってもよい。そのような実施形態では、システム２００がそのような１つの計画グラフに関連付けられたタスクおよび環境のペアのセットについてのそれぞれの離散化を生成することができる。図８は、１つの例示としての実施形態に従った、ロボット１０２が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定することによってロボットのモーションプラニングを容易にするためのロボット制御システム２００における動作の方法８００を示すフロー図である。ロボット１０２が通過する各領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちの何れを使用すべきかを決定することによってロボットのモーションプラニングを容易にするロボット制御システム２００における動作の方法８００は８０２で開始する。
【０１２２】
８０４において、少なくとも部分的には、ロボット１０２が実行するであろうタスクの対を分類する特定されたシナリオと、ロボットが動作するであろう環境とに基づいて、システム２００はロボット１０２の１つの状態とロボット１０２の別の状態との間を遷移する際に、ロボット１０２の少なくとも一部が通過するであろうそれぞれの領域を表すいくつかの掃引体積を生成するために使用するいくつかの離散化のうちのどれを使用するかを決定する。この決定は、特定されたシナリオに基づいて少なくとも２つの離散化の間で選択することを含み得る。そのような場合、それぞれの離散化のうちの少なくとも２つのボクセルは、それぞれの離散化におけるサイズおよび形状のうちの少なくとも１つにおいて非均一である。また、それぞれの離散化のうちの少なくとも２つのボクセルの不均一性のそれぞれの分布は互いに異なる。
【０１２３】
８０６において、計画グラフ内の複数のエッジの各々に対して、システム２００は、決定された離散化を用いてエッジのそれぞれの掃引体積を決定する。計画グラフは、複数のノードおよび複数のエッジを含む。各ノードは、ロボットの複数の状態のそれぞれ１つを表す。各エッジは一対のノードを結合し、エッジによって結合されたそれぞれのノードによって表される状態間のロボット１０２による遷移を表す。
【０１２４】
８０８において、システム２００は少なくとも１つの非一時的プロセッサ可読媒体に、少なくとも特定されたシナリオに対して最も有効であると評価される、ロボット１０２が動作することになる環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも１つを格納する。ロボット１０２が通過するそれぞれの領域を表すいくつかの（又は、多数の）掃引体積を生成するために使用されるいくつかの離散化のどれを使用するかを決定することによってロボットのモーションプラニングを容易化するロボット制御システム２００における動作の方法８００は８１０で終了する。いくつかの実施形態では、計画グラフが複数のシナリオに関連付けられてもよい。図９は、１つの例示としての実施形態に従った、決定された離散化を用いてロボット１０２が動作する環境の離散化された表現を生成することによってロボットのモーションプラニングを容易にするためのロボット制御システム２００における動作の方法９００を示すフロー図である。決定された離散化を用いてロボット１０２が動作する環境の離散化された表現を生成することによってロボットのモーションプラニングを容易化するロボット制御システム２００における動作の方法９００は９０２で開始する
【０１２５】
９０４において、少なくとも部分的にはロボット１０２が実行するであろうタスクの対を分類する特定されたシナリオと、ロボット１０２が動作する環境とに基づいて、システム２００は環境（環境内に障害物が存在する場合にはその障害物を含む）の離散化された表現を生成するためのいくつかの離散化のうちのどれを使用するかを決定する。
【０１２６】
９０６において、システム２００は、環境を感知する１つまたは複数のセンサ２８２によって生成されたセンサ情報を受信する。センサ情報は、環境内に障害物が存在する場合にはその障害物を含む環境を表す。
【０１２７】
９０８で、システム２００は、決定された離散化を使用して、環境内に障害物がある場合にはそれを含む環境の離散化表現を生成する。決定された離散化の複数のボクセルは、それぞれの離散化におけるサイズおよび形状のうちの少なくとも１つにおいて非均一である。決定された離散化のボクセルの不均一性のそれぞれの分布は、いくつかの離散化のうちの別の１つのボクセルの分布とは異なる。システムは、掃引体積の離散化表現を生成するために使用されるボクセルサイズおよび形状の分布に一致（又は、適合）するボクセルサイズおよび形状の分布を使用して、環境の離散化表現を生成する。ロボット１０２が動作する環境の離散化された表現を生成することによってロボットのモーションプラニングを容易化するロボット制御システム２００における動作の方法９００は、９１０で終了する。
【０１２８】
図１０は、１つの例示としての実施形態に従った、計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによって、ロボットのモーションプラニングを容易化するためのロボット制御システム２００における動作の方法１０００を示すフロー図である。方法１０００は、複数の計画グラフを使用する。各計画グラフは、それぞれ、複数のエッジによって接続された複数のノードを含む。各ノードは第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは、第１のロボットの状態のそれぞれの対の間の遷移を表す。それぞれの状態のペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表される。計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによってロボットのモーションプラニングを容易化するロボット制御システム２００における動作の方法１０００は１００２で開始する。
【０１２９】
１００４において、複数の計画グラフの第１の計画グラフ、および第１の計画グラフの複数のエッジのそれぞれに対して、システム２００は、エッジに関連する掃引された体積の離散化された表現と、ロボットが動作する環境内の任意の障害物の離散化された表現との間の衝突についての衝突検査を実行する。
【０１３０】
１００６において、システム２００は、衝突検査に基づいて第１の計画グラフを更新する。
【０１３１】
１００８において、システム２００は更新された第１の計画グラフの最適化を実行して、更新された第１の計画グラフから、もしあれば、１つ以上の最適化された結果を特定する。
【０１３２】
１０１０において、システム２００は、更新された第１の計画グラフからの１つまたは複数の最適化された結果がもしあれば、満足条件を満たすかどうかを判定する。
【０１３３】
１０１２において、システム２００が、更新された第１の計画グラフからの１つまたは複数の最適化された結果（もしあれば）が満足条件を満たさなかったと判定した場合、方法１０００は１０１４に続く。更新された第１の計画グラフからの１つまたは複数の最適化された結果（もしあれば）が満足条件を満たすとシステム２００が判定した場合、方法１０００は１０２０で終了する。更新された第１の計画グラフからの１つ以上の最適化された結果（もしあれば）が満足条件を満たしていると判断することに応答して、システム２００は更新された第１の計画グラフからの１つ以上の最適化された結果のうちの１つによって特定される遷移をロボット１０２に適用することができる（例えば、ロボットを移動させる）。
【０１３４】
１０１４において、更新された第１の計画グラフからの１つまたは複数の最適化された結果（もしあれば）が満足条件を満たさなかったとシステム２００が判定したことに応答して、システム２００は、第２の計画グラフの複数のエッジのそれぞれについて、エッジに関連付けられた掃引体積の離散化された表現と、ロボット１０２が動作する環境内の任意の障害物の離散化された表現との間の衝突検査を実行する。
【０１３５】
１０１６において、システム２００は、衝突検査に基づいて第２の計画グラフを更新する。
【０１３６】
１０１８において、システム２００は更新された第２の計画グラフの最適化を実行して、更新された第２の計画グラフから、もしあれば、１つ以上の最適化された結果を特定する。計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによってロボットのモーションプラニングを容易化するロボット制御システム２００における動作の方法１０００は１０２０で終了する。
【０１３７】
システム２００は、更新された第２の計画グラフからの１つまたは複数の最適化された結果がもしあれば、満足条件を満たすかどうかを判定することもできる。１つ以上の最適化された結果がもしあれば、更新された第２の計画グラフから満足条件を満たすと判断することに応じて、システム２００は更新された第２の計画グラフからの１つ以上の最適化された結果のうちの１つによって特定される遷移をロボット１０２に適用することができる（例えば、ロボットを動かす）。
【０１３８】
さらに、更新された第２の計画グラフからの１つまたは複数の最適化された結果（もしあれば）が満足条件を満たさないと判定することに応答して、システムは衝突検査を繰り返し、計画グラフを更新し、システムが満足条件を満たす計画グラフを特定するまで、後続の計画グラフに対して最適化を実行することができる。次に、システム２００は、特定された計画グラフからの１つ以上の最適化された結果のうちの１つによって特定された遷移をロボット１０２に適用することができる。いくつかの実施形態では更新された計画グラフからの最適化された結果がそのようなプロセスにおいて満足条件を満たすかどうかを判定することは最適化が衝突のない経路を生成するかどうかを判定することを含み得る。このような無衝突経路は、環境内の全ての障害物との衝突を回避する経路である。
【０１３９】
上記の詳細説明においては、ブロック図、模式図及び実施例を用いて、多様な装置及び／又は方法の実施形態について記載している。これらのブロックダイヤグラム、概略図及び実施例は１つまたは２つ以上の機能及び／または動作を含んでいるが、当業者には明らかなように、これらのブロックダイヤグラム、流れ図及び実施例におけるそれぞれの機能及び／または動作は個々に及び／または一括して、多様なハードウェア、ソフトウェア、ファームウェア、または事実上任意のこれらの組み合わせによって実装することができる。一実施形態では、本主題がブール回路、特定用途向け集積回路（ＡＳＩＣ）および／またはＦＰＧＡを介して実装され得る。しかしながら、本明細書に開示された実施形態は全体的にまたは部分的に、標準的な集積回路における様々な異なる実装において、１つまたは複数のコンピュータ上で実行される１つまたは複数のコンピュータプログラムとして（例えば、１つまたは複数のコンピュータシステム上で実行される１つまたは複数のプログラムとして）、１つまたは複数のプロセッサ（例えば、マイクロプロセッサ）上で実行される１つまたは複数のプログラムとして、ファームウェアとして、またはそれらの事実上任意の組合せとして実装することができ、回路を設計すること、および／またはソフトウェアおよび／またはファームウェアのためのコードを書き込むことは、本開示に照らして当業者の技術の範囲内で十分にあることを、当業者は認識するであろう。
【０１４０】
当業者は本明細書に記載された方法またはアルゴリズムの多くが、追加の動作を使用し、いくつかの動作を省略し、および／または指定された順序とは異なる順序で動作を実行し得ることを認識するであろう。
【０１４１】
さらに、当業者は、本明細書で教示されるメカニズムが様々な形態でプログラム製品として配布されることが可能であり、例示的な実施形態が配布を実際に実行するために使用される信号搬送媒体の特定のタイプにかかわらず、等しく適用されることを理解するであろう。信号担持媒体の例にはハードディスクドライブ、ＣＤＲＯＭ、およびコンピュータメモリなどの記録可能タイプの媒体が含まれるが、これらに限定されない。
【０１４２】
上記の種々の実施形態は、更なる実施形態を提供するように組み合わされることが可能である。本願と同じ譲受人に譲渡された米国特許出願公開、米国特許出願、外国特許、および本明細書に言及され、かつ／または「MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS（自律走行車のモーションプラニングと再構成可能なモーションプラニングプロセッサー）」という名称の平成２９年６月９日に出願された国際特許出願第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つ以上のプロセッサに格納するロボットのモーションプラニングとその改善された操作）」という名称の２０１８年２月６日出願の米国特許出願番号第62/626,939は、その全体が参照により本明細書に組み込まれる。上記の詳細説明に照らして、上記の及び他の変形がそれらの実施形態に対して行われることが可能である。一般に、以下の特許請求の範囲において、使用される用語は特許請求の範囲を、明細書および特許請求の範囲に開示される特定の実施形態に限定するように解釈されるべきではなく、そのような特許請求の範囲が権利を有する均等物の全範囲とともに、すべての可能な実施形態を含むように解釈されるべきである。したがって、特許請求の範囲は、本開示によって限定されない。
【０１４３】
下記は、本願の出願当初に記載の発明である。
＜請求項１＞
ロボット制御システムにおける動作方法であって、
環境内で動作する第１のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表される、該ステップと、
各計画グラフのエッジの少なくとも２つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも１つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
第１の時間に第１の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップと、
第２の時間に第２の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップを有し、
第２の物理的寸法のセットのうちの少なくとも１つの寸法が前記第１のセットの前記寸法のうちの対応する１つと相違する、方法。
＜請求項２＞
前記第１のロボットは前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢を有し、前記第１のロボットは前記第１の付属肢に取り付けられた第１のエンドエフェクタを有し、前記第１のエンドエフェクタは、少なくとも第１のエンドエフェクタ配置と第２のエンドエフェクタ配置との間で移動するように選択的に動作可能であり、
前記方法は、
前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが第１のエンドエフェクタ配置にあることを決定するステップをさらに有し、
前記第１の物理的寸法のセットは前記第１のエンドエフェクタ配置における前記第１のエンドエフェクタの寸法のセットを表し、
少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが前記第１のエンドエフェクタ配置にあることの決定に応答する、請求項１に記載の方法。
＜請求項３＞
前記第１の付属肢に取り付けられた第１のエンドエフェクタが第２のエンドエフェクタ配置にあると判定するステップをさらに有し、
前記第２の物理的寸法のセットは前記第２のエンドエフェクタ配置における前記第１のエンドエフェクタの寸法のセットを表し、
少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが前記第２のエンドエフェクタ配置にあることの決定に応答する、請求項２に記載の方法。
＜請求項４＞
前記第１のロボットは前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢と、前記第１の付属肢に取り付けられた第１のエンドエフェクタとを有し、前記第１のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つは、前記把持していない配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つとは相違し、
前記方法は、
前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持していない配置にあると決定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持していない配置にあるという決定に応答する、該ステップと、
前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持している配置にあると決定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持している配置にあるという決定に応答する、該ステップ
をさらに有する、請求項１に記載の方法。
＜請求項５＞
前記第１のロボットは、前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第１の付属肢を有し、
前記方法は、
前記第１のロボットが前記第１の付属肢に取り付けられた第１のエンドエフェクタを有すると決定するステップをさらに有し、
前記第１の物理的寸法のセットが前記第１の付属肢に取り付けられた前記第１のエンドエフェクタの寸法のセットを表し、
少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記第１のロボットが前記第１の付属肢に取り付けられた第１のエンドエフェクタを有するという決定に応答する、請求項１に記載の方法。
＜請求項６＞
前記第１のロボットが前記第１の付属肢に取り付けられた第２のエンドエフェクタを有すると決定するステップをさらに有し、
前記第２のエンドエフェクタが前記第１のエンドエフェクタとは少なくとも１つの形状またはサイズで相違し、
前記第２の物理的寸法のセットが前記第１の付属肢に取り付けられた前記第２のエンドエフェクタの寸法のセットを表し、
少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップが、前記第１のロボットが前記第１の付属肢に取り付けられた第２のエンドエフェクタを有するという決定に応答する、請求項５記載の方法。
＜請求項７＞
前記第１のロボットは自律車両または半自律車両のうちの少なくとも１つであり、第１の物理的状態にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つは、第２の物理的状態にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つと相違し（例えば、例えば、燃料の消費によって重量が変化し得るために速度が変化し、移動距離が変化し得る）、
前記方法は、
前記自律車両または半自律車両のうちの少なくとも１つが第１の物理的状態にあると判定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記自律車両または半自律車両のうちの少なくとも１つが前記第１の物理的状態にあるという決定に応答する、該ステップと、
前記自律車両または半自律車両のうちの少なくとも１つが第２の物理的状態にあると決定するステップであって、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、自律車両または半自律車両のうちの少なくとも１つが第２の物理的状態にあるという決定に応答する、該ステップ
をさらに有する、請求項１に記載の方法。
＜請求項８＞
少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの１つに対する前記エッジ情報を前記少なくとも１つのプロセッサの複数の回路の各々に適用して、どのエッジが前記ロボットが動作する環境内の障害物によって占有される単位体積と衝突するかを決定するステップを含む、請求項１〜７のいずれかに記載の方法。
＜請求項９＞
少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの１つに対する前記エッジ情報を、前記少なくとも１つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含む、請求項１〜７のいずれかに記載の方法。
＜請求項１０＞
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを生成するステップを含む、請求項１〜７のいずれかに記載の方法。
＜請求項１１＞
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を２つ以上のボクセルをカバーする体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項１〜７のいずれかに記載の方法。
＜請求項１２＞
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズム（直方体）で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項１〜７のいずれかに記載の方法。
＜請求項１３＞
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズム（直方体）で表すそれぞれのエッジ情報のセットを生成するステップは、前記矩形プリズムの各々に対して、それぞれの矩形プリズムの体積を完全に規定する三次元座標のセットを格納するステップを含む、請求項１２に記載の方法。
＜請求項１４＞
複数の計画グラフを決定するステップと、それぞれのエッジ情報のセットを生成するステップが、実行前期間中に実行される、請求項１〜７のいずれかに記載の方法。
＜請求項１５＞
少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップは、実行時期間中に実行される、請求項１〜７のいずれかに記載の方法。
＜請求項１６＞
プロセッサベースのロボット制御システムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、
環境内で動作する第１のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表される、該ステップと、
各計画グラフのエッジの少なくとも２つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも１つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
第１の時間に第１の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第１のものに対する前記エッジ情報のセットを提供するステップと、
第２の時間に第２の物理的寸法のセットを有する前記第１のロボットの少なくとも一部分に基づいて、少なくとも１つのプロセッサに前記計画グラフのうちの第２のものに対する前記エッジ情報のセットを提供するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する、少なくとも１つの非一時的プロセッサ可読媒体を有し、
前記第２の物理的寸法のセットのうちの少なくとも１つの寸法が前記第１のセットの前記寸法のうちの対応する１つと相違する、プロセッサベースのロボット制御システム。
＜請求項１７＞
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、請求項２から１５の方法のいずれかを実行させる、請求項１６に記載のプロセッサベースのシステム。
＜請求項１８＞
ロボット制御システムにおける動作方法であって、
少なくとも第１のロボットが動作する１つ以上の障害物によって占有される環境の第１の離散化された表現に対して、少なくとも１つのプロセッサに前記環境の第１の離散化された表現の少なくとも一部を供給するステップと、
前記少なくとも１つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第１の計画グラフの各エッジについて、前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記複数の計画グラフの各計画グラフが前記第１のロボットの異なる物理的寸法のセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第１のロボットの状態のペアの間を遷移する際に前記第１のロボットの少なくとも一部によって掃引される体積を表し、前記第１のロボットの状態のペアのそれぞれは、前記第１の計画グラフのノードのペアのそれぞれによって表され、
前記ノードのペアのそれぞれは前記第１の計画グラフのそれぞれのエッジによって接続され、前記それぞれのエッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表す、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と前記環境内の１つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第１の計画グラフのエッジのいずれかを特定するステップを有する、方法。
＜請求項１９＞
前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、前記エッジのうちの１つについての前記エッジ情報を、前記少なくとも１つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含む、請求項１８に記載の方法。
＜請求項２０＞
前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも１つのプロセッサの複数の回路のそれぞれに前記それぞれのエッジについての前記エッジ情報を並列に適用するステップを含む、請求項１８に記載の方法。
＜請求項２１＞
前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間を遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを適用するステップを含む、請求項１８に記載の方法。
＜請求項２２＞
前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を体積単位で表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ２つ以上のボクセルをカバーする、請求項１８に記載の方法。
＜請求項２３＞
前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ２つ以上のボクセルをカバーする、請求項１８に記載の方法。
＜請求項２４＞
前記少なくとも１つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第１のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップが、前記矩形プリズムのそれぞれについて、それぞれの前記矩形プリズムの体積を完全に定義する３次元座標のペアを格納するステップを含む、請求項２３に記載の方法。
＜請求項２５＞
前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップであって、前記第２の配置は前記第１の配置とは相違する、該ステップと、
複数の前記計画グラフの第２の計画グラフの各エッジについて、前記少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記エッジ情報のそれぞれのセットは前記第１のロボットの状態のペアの間で遷移する際に、前記第１のロボットの少なくとも一部により掃引される体積を表し、前記第１のロボットの状態のペアは前記第２の計画グラフのノードのペアのそれぞれの１つによって表され、前記ノードのそれぞれのペアは前記第２の計画グラフのそれぞれのエッジによって結合され、前記それぞれのエッジは前記第１のロボットの状態のそれぞれのペアの間の遷移を表し、前記第２の計画グラフは第１の計画グラフと相違する、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と環境内の１つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第２の計画グラフの前記エッジのいずれかを特定するステップ
を有する、請求項１８の方法。
＜請求項２６＞
前記第１のロボットが前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な第１の付属肢を含み、前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップが、第２のエンドエフェクタが第１のエンドエフェクタの代わりに前記第１の付属肢に取り付けられるかまたは取り付けられていることを決定するステップを含む、請求項２５に記載の方法。
＜請求項２７＞
前記第１のロボットが前記第１のロボットが動作する環境に対して移動するように選択的に動作可能な第１の付属肢と、前記第１の付属肢に取り付けられた第１のエンドエフェクタとを含み、前記第１のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つは前記把持していない配置において前記第１のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも１つとは相違し、前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップは、前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップを含む、請求項２５に記載の方法。
＜請求項２８＞
前記第１の付属肢に取り付けられた前記第１のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップは、前記第１のエンドエフェクタが把持していない配置と把持している配置との間で遷移しているかまたは遷移したことを決定するステップを含む、請求項２７に記載の方法。
＜請求項２９＞
前記第１のロボットは自律車両または半自律車両のうちの少なくとも１つであり、第１の配置にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つは、第２の配置にある前記自律車両または半自律車両のうちの少なくとも１つによって占有される体積のサイズまたは形状のうちの少なくとも１つと相違し、
前記第１のロボットが第１の配置から第２の配置に変更されるかまたは変更されたことを決定するステップは、前記自律車両または半自律車両のうちの少なくとも１つが、前記自律車両または半自律車両のうちの少なくとも１つの前記第１及び第２の配置間で遷移しているかまたは遷移したことを決定するステップを含む、請求項２５に記載の方法。
＜請求項３０＞
前記少なくとも１つのプロセッサに前記第１の計画グラフの各エッジのエッジ情報のそれぞれのセットを提供するステップは実行期間中に前記エッジ情報のそれぞれのセットを非一時的記憶装置から取り出すステップを含み、前記エッジ情報のそれぞれのセットは実行前期間中に前記非一時的記憶装置に記憶される、請求項１８から２９のいずれかに記載の方法。
＜請求項３１＞
前記少なくとも１つのプロセッサはフィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つであり、少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つに実装された前記少なくとも１つのプロセッサの複数の回路のそれぞれに前記エッジのうちの１つのためのエッジ情報を適用するステップを含む、請求項３０に記載の方法。
＜請求項３２＞
前記少なくとも１つのプロセッサ上のメモリに前記環境の第１の離散化された表現を記憶するステップと、
前記少なくとも１つのプロセッサ上のメモリに前記環境の第１の離散化された表現を記憶した後、前記少なくとも１つのプロセッサとは別個の記憶装置から前記少なくとも１つのプロセッサによって前記エッジ情報のセットを受信するステップ
を含む、請求項１８記載の方法
＜請求項３３＞
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、
少なくとも第１のロボットが動作する１つまたは複数の障害物によって占有される環境の第１の離散化された表現に対して、環境の第１の離散化された表現の少なくとも一部を少なくとも１つのプロセッサに供給するステップと、
少なくとも１つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第１の計画グラフの各エッジについて、エッジ情報のそれぞれのセットを少なくとも１つのプロセッサに提供するステップであって、前記複数の計画グラフのうちの第１の計画グラフの各エッジは第１のロボットの物理的寸法の異なるセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第１のロボットの状態のペアの間で遷移する際に前記第１のロボットの少なくとも一部によって掃引される体積を表し、前記第１のロボットの状態のペアのそれぞれは前記第１の計画グラフのノードのペアのそれぞれの１つによって表され、前記ノードのペアのそれぞれは前記第１の計画グラフのエッジのそれぞれにより結合され、前記エッジのそれぞれは前記第１のロボットの状態のペアのそれぞれの間の遷移を表す、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と、前記環境内の１つまたは複数の障害物の少なくとも一部の間の衝突をもたらすことになる前記第１の計画グラフの前記エッジのいずれかを特定するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有するプロセッサベースのロボット制御システム。
＜請求項３４＞
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、請求項１９から３２の方法のいずれかを実行させる、請求項３３に記載のプロセッサベースのシステム。
＜請求項３５＞
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法であって、前記方法は、
タスクおよび環境の複数のペアのセットを含む少なくとも第１のシナリオについて、
前記少なくとも第１のシナリオのタスクおよび環境の前記ペアのそれぞれについて、
複数の反復のそれぞれについて、
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも２つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも１つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、
少なくとも１つの非一時的プロセッサ可読媒体に、少なくとも第１のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを有する、方法。
＜請求項３６＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも１つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルのそれぞれの体積のそれぞれと比較して比較的小さい体積を有する、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項３７＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第１の領域の複数の前記ボクセルのそれぞれが第１の体積を有し、前記ロボットの前方の第２の領域の複数の前記ボクセルが第２の体積を有し、前記第２の体積が前記第１の体積と相違する、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項３８＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、ロボットの前方の第１の領域の複数のボクセルの各々が第１の体積を有し、ロボットの前方の第２の領域の複数のボクセルが第２の体積を有し、ロボットの前方の第３の領域の複数のボクセルが第３の体積を有し、第３の体積が第２の体積と相違する、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項３９＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第１の領域の複数の前記ボクセルのそれぞれが第１の体積を有し、前記ロボットの前方の第２の領域の複数の前記ボクセルが第２の体積を有し、前記ロボットの前方の第３の領域の複数の前記ボクセルが第３の体積を有し、前記第２の体積は前記第１の体積とは相違し、前記第３の体積が前記第２の体積と相違する、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項４０＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した第３の領域内の複数の前記ボクセルのそれぞれが第３の形状を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と相違する、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項４１＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも１つの領域内の複数の前記ボクセルの各々の形状が、前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルの各々の形状と相違する、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項４２＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記第２の形状が前記第１の形状と相違する、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項４３＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の形状を有し、前記第３の形状が前記第２の形状と相違する、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項４４＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の形状を有し、前記第２の形状が前記第１の形状と相違し、前記第３の形状が前記第２の形状と相違する、第１の離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項４５＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した複数の前記ボクセルが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した複数の前記ボクセルが第３の形状を有し、前記第２の形状は前記第１の形状とは相違し、前記第３の形状は第２の形状とは相違する、第１の離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項４６＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の少なくとも１つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項４７＞
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも１つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方とは相違し、形状のうちの少なくとも１つが非立方体である、第１のそれぞれの離散化を生成するステップを含む、請求項３５に記載の方法。
＜請求項４８＞
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突のない経路をもたらす可能性が最も高いかを決定するステップを含む、請求項３５に記載の方法。
＜請求項４９＞
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突の確率が最も低い経路をもたらす可能性が最も高いかを決定するステップを含む、請求項３５に記載の方法。
＜請求項５０＞
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、最も低コストの衝突のない経路をもたらす可能性が最も高いかを決定するステップを含む、請求項３５に記載の方法。
＜請求項５１＞
少なくとも１つの非一時的プロセッサ可読媒体に、少なくとも第１のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップは、複数のシナリオの各々に対して少なくとも１つの生成されたそれぞれの離散化を、生成されたそれぞれの離散化のうちのどれが複数のシナリオの各々に対して使用されるべきかの指示と共に記憶するステップを含む、請求項３５に記載の方法。
＜請求項５２＞
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、
タスクおよび環境の複数のペアのセットを含む少なくとも第１のシナリオについて、
前記少なくとも第１のシナリオのタスクおよび環境の前記ペアのそれぞれについて、
複数の反復のそれぞれについて、
少なくとも１つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも２つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも１つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、
少なくとも１つの非一時的プロセッサ可読媒体に、少なくとも第１のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する、少なくとも１つの非一時的プロセッサ可読媒体
を有するモーションプラニングを容易にするためのプロセッサベースのシステム。
＜請求項５３＞
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、請求項３６から５１の方法のいずれかを実行させる、請求項５２に記載のプロセッサベースのシステム。
＜請求項５４＞
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの１つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ１つを表し、エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、
少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも１つを少なくとも１つの非一時的プロセッサ可読媒体に記憶するステップ
を有するロボットのモーションプラニングを容易にするためのシステムにおける動作方法。
＜請求項５５＞
いくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップは、特定されたシナリオに基づいて少なくとも２つの離散化の中から選択するステップを含み、それぞれの離散化のうちの少なくとも２つのボクセルはそれぞれの離散化におけるサイズおよび形状のうちの少なくとも１つにおいて不均一であり、それぞれの離散化のうちの少なくとも２つのボクセルの不均一性のそれぞれの分布は互いに相違する、請求項５４に記載の方法。
＜請求項５６＞
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の少なくとも１つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも１つの領域内の複数の前記ボクセルのそれぞれの体積と比較して比較的小さな体積を有するような前記決定された離散化を用いて前記エッジのそれぞれの掃引された体積を決定するステップを含む、請求項５４に記載の方法。
＜請求項５７＞
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の体積を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の体積を有し、前記第２の体積が前記第１の体積とは異なるような前記決定された離散化を用いて、前記エッジのそれぞれの掃引された体積を決定するステップを含む、請求項５４に記載の方法。
＜請求項５８＞
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルの各々が第１の体積を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の体積を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の体積を有し、前記第３の体積が前記第２の体積とは異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含む、請求項５４に記載の方法。
＜請求項５９＞
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第１の領域内の複数の前記ボクセルの各々が第１の体積を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の体積を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の体積を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含む、請求項５４に記載の方法。
＜請求項６０＞
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した第３の領域内の複数の前記ボクセルのそれぞれが第３の形状を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と相違する、該ステップを有する、請求項５４に記載の方法。
＜請求項６１＞
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも１つの領域における前記複数のボクセルの各々の形状が前記ロボットの後方の少なくとも１つの領域の前記複数のボクセルの各々の形状と相違する、該ステップを含む、請求項５４に記載の方法。
＜請求項６２＞
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記第２の体積が前記第１の体積と相違する、該ステップを有する、請求項５４に記載の方法。
＜請求項６３＞
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第１の領域内の複数のボクセルの各々が第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の形状を有し、前記第３の形状が前記第２の形状とは相違する、該ステップを含む、請求項５４に記載の方法。
＜請求項６４＞
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第１の領域内の複数のボクセルの各々が第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数の前記ボクセルが第３の形状を有し、前記第２の形状が前記第１の形状とは相違し、前記第３の形状が前記第２の形状とは相違する、該ステップを含む、請求項５４に記載の方法。
＜請求項６５＞
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの直前の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した第３の領域内の複数の前記ボクセルのそれぞれが第３の形状を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と相違する、該ステップを有する、請求項５４に記載の方法。
＜請求項６６＞
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも１つの領域における前記複数のボクセルの各々の形状および体積の両方が前記ロボットの後方の少なくとも１つの領域の前記複数のボクセルの各々の形状および体積の両方と相違する、請求項５４に記載の方法。
＜請求項６７＞
前記特定されたシナリオを受信するステップをさらに含む、請求項５４に記載の方法。
＜請求項６８＞
少なくとも１つのプロセッサにエッジ情報のそれぞれのセットを提供するステップをさらに有し、
前記エッジ情報のそれぞれのセットは、前記ロボットの１つのペアの状態間の遷移の際に前記第１のロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表す、請求項５４記載の方法
＜請求項６９＞
前記少なくとも１つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つであり、
前記フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つに実装された前記少なくとも１つのプロセッサの複数の回路のそれぞれに、前記ロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表すそれぞれのエッジ情報のセットを適用して、前記ロボットの１つのペアの状態間を遷移させるステップをさらに有する、請求項５４から６８のいずれかに記載の方法
＜請求項７０＞
モーションプラニングを容易にするためのプロセッサベースのシステムであって、前記システムは、
少なくとも１つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有し、
前記少なくとも１つの非一時的プロセッサ可読媒体は、前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの１つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ１つを表し、前記エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、
少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも１つを少なくとも１つの非一時的プロセッサ可読媒体に記憶するステップ
を実行させる、プロセッサベースのシステム。
＜請求項７１＞
前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、請求項５５〜６９の方法のいずれかを実行させる、請求項７０に記載のプロセッサベースのシステム。
＜請求項７２＞
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法であって、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップと、
環境を感知する１つまたは複数のセンサによって生成されたセンサ情報を受け取るステップであって、前記センサ情報は障害物を含み得る環境を表す、該ステップと、
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも１つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の１つにおける前記ボクセルの不均一性と相違する、該ステップ
を有する、方法。
＜請求項７３＞
少なくとも１つの非一時的プロセッサ可読媒体に、生成された前記障害物を含み得る環境の離散化表現を記憶するステップをさらに有する請求項７２記載の方法。
＜請求項７４＞
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含む、請求項７２に記載の方法。
＜請求項７５＞
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、ロボットにより掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含む、請求項７２に記載の方法。
＜請求項７６＞
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、特定された前記シナリオに基づいて少なくとも２つの離散化の間で選択するステップを含み、
それぞれの前記離散化のうちの少なくとも２つのボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも１つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも２つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、請求項７２に記載の方法。
＜請求項７７＞
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の少なくとも１つの領域の複数のボクセルの各々が前記ロボットの後方の少なくとも１つの領域の複数のボクセルの各々のそれぞれの体積と比較して相対的に小さい体積を有する、該離散化を使用して環境の離散化された表現を生成するステップを含む、請求項７２に記載の方法。
＜請求項７８＞
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の第１の領域の複数の前記ボクセルのそれぞれが第１の体積を有し、前記ロボットの前方の第２の領域の複数の前記ボクセルが第２の体積を有し、前記第２の体積が前記第１の体積と相違する、該離散化を使用して環境の離散化された表現を生成するステップを含む、請求項７２に記載の方法。
＜請求項７９＞
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の第１の領域の複数のボクセルの各々が第１の体積を有し、前記ロボットの前方の第２の領域の複数のボクセルが第２の体積を有し、前記ロボットの前方の第３の領域の複数のボクセルが第３の体積を有し、第３の体積が第２の体積と相違する、該離散化を使用して生成するステップを含む、請求項７２に記載の方法。
＜請求項８０＞
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の第１の領域の複数のボクセルの各々が第１の体積を有し、前記ロボットの前方の第２の領域の複数のボクセルが第２の体積を有し、前記ロボットの前方の第３の領域の複数のボクセルが第３の体積を有し、第２の体積が第１の体積と相違し、第３の体積が第２の体積と相違する、該離散化を使用して生成するステップを含む、請求項７２に記載の方法。
＜請求項８１＞
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの直前の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方における前記ロボットに関して前記第１の領域から相対的に外側に離間した第２の領域内の複数の前記ボクセルのそれぞれが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した第３の領域内の複数の前記ボクセルのそれぞれが第３の形状を有し、前記第２の体積が前記第１の体積と相違し、前記第３の体積が前記第２の体積と相違する、該ステップを含む、請求項７２に記載の方法。
＜請求項８２＞
障害物を含み得る前記環境の離散化表現を生成するステップは、前記ロボットの前方の少なくとも１つの領域内の複数のボクセルの各々の形状が前記ロボットの後方の少なくとも１つの領域の複数のボクセルの各々の形状と相違する、前記決定された離散化を使用して、前記環境の離散化表現を生成するステップを含む、請求項７２に記載の方法。
＜請求項８３＞
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の第１の領域内の複数の前記ボクセルのそれぞれが第１の形状を有し、前記ロボットの前方の第２の領域内の複数の前記ボクセルが第２の形状を有し、前記第２の形状が前記第１の形状と相違する、請求項７２に記載の方法。
＜請求項８４＞
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の第１の領域内の複数のボクセルの各々が第１の形状を有し、前記ロボットの前方の第２の領域内の複数のボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数のボクセルが第３の形状を有し、前記第３の形状が前記第２の形状と相違する、請求項７２に記載の方法。
＜請求項８５＞
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の第１の領域内の複数のボクセルの各々が第１の形状を有し、前記ロボットの前方の第２の領域内の複数のボクセルが第２の形状を有し、前記ロボットの前方の第３の領域内の複数のボクセルが第３の形状を有し、前記第２の形状が第１の形状と相違し、前記第３の形状が第２の形状と相違する、請求項７２に記載の方法。
＜請求項８６＞
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの直前の第１の領域内の複数の前記ボクセルの各々が第１の形状を有し、前記ロボットの前記における前記ロボットに関して前記第１の領域から相対的に外側に離間した複数の前記ボクセルが第２の形状を有し、前記ロボットの前方における前記ロボットに関して前記第２の領域から相対的に外側に離間した複数の前記ボクセルが第３の形状を有し、前記第２の形状が第１の形状と相違し、前記第３の形状が第２の形状と相違する、請求項７２に記載の方法。
＜請求項８７＞
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の少なくとも１つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも１つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第１のそれぞれの離散化を生成する、
請求項７２に記載の方法。
＜請求項８８＞
前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、
受け取った情報に少なくとも部分的に基づいて特定されたシナリオを特定するステップ
をさらに含む、請求項７２記載の方法。
＜請求項８９＞
前記環境の離散化された表現を少なくとも１つのプロセッサに提供するステップをさらに含む、請求項７２記載の方法。
＜請求項９０＞
前記少なくとも１つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つであり、
前記環境の離散化された表現を、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも１つに実装された複数の回路のそれぞれに適用するステップ
をさらに含む、請求項７２から８９のいずれかに記載の方法。
＜請求項９１＞
モーションプラニングを容易にするためのプロセッサベースのシステムであって、
少なくとも１つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有し、
前記少なくとも１つの非一時的プロセッサ可読媒体は、前記少なくとも１つのプロセッサによって実行されるときに、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害物を含み得る環境の離散化表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
環境を感知する１つまたは複数のセンサによって前記障害物を含み得る環境を表すセンサ情報を受け取るステップと、
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも１つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の１つにおける前記ボクセルの不均一性と相違する、該ステップ
を実行させる、プロセッサベースのシステム。
＜請求項９２＞
前記少なくとも１つの非一時的プロセッサ可読媒体は、前記少なくとも１つのプロセッサによって実行されるときに、請求項７３〜９０の方法のいずれかを実行させる、請求項９１に記載のプロセッサベースのシステム。
＜請求項９３＞
複数の計画グラフを使用するロボット制御システムにおける動作方法であって、各計画グラフは複数のエッジによってそれぞれ接続された複数のノードをそれぞれ含み、各ノードは第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれはそれぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表され、
前記方法は、
前記複数の計画グラフのうちの第１の計画グラフに対し、
第１の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第１の計画グラフを更新するステップと、
更新された前記第１の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップと、
更新された前記第１の計画グラフから、前記１つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、
前記方法はさらに、
前記最適化された結果が満足条件を満たさないと判断したことに応じて、
第２の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第２の計画グラフを更新するステップと、
更新された前記第２の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップを含む、方法。
＜請求項９４＞
更新された前記第２の計画グラフから、前記１つまたは複数の最適化された結果がもし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップをさらに含む、請求項９３記載の方法。
＜請求項９５＞
前記更新された第２の計画グラフからの前記１つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、
更新された前記第２計画グラフからの前記１つまたは複数の最適化された結果の１つによって特定された遷移を前記ロボットに適用するステップをさらに有する、請求項９４に記載の方法。
＜請求項９６＞
前記更新された第２の計画グラフからの前記１つまたは複数の最適化された結果がもし存在しないのなら、当該結果が前記満足条件を満さないと決定したことに応答して、
第３の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第３の計画グラフを更新するステップと、
更新された前記第３の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップをさらに有する、請求項９４に記載の方法
＜請求項９７＞
前記更新された第３の計画グラフからの前記１つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、
更新された前記第３計画グラフからの前記１つまたは複数の最適化された結果の１つによって特定される遷移をロボットに適用するステップをさらに有する、請求項９６に記載の方法。
＜請求項９８＞
更新された前記第２の計画グラフから、もし存在するのなら前記１つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が任意の経路を生成するかどうかを決定するステップを含む、請求項９３に記載の方法。
＜請求項９９＞
更新された前記第２の計画グラフから、もし存在するのなら前記１つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が衝突のない経路を生成するかどうかを決定するステップを含む、請求項９３に記載の方法。
＜請求項１００＞
前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップは、前記第１の計画グラフ内の前記エッジの各々について、前記エッジに関するエッジ情報のセットを、前記複数の回路の各々に並列に適用するステップを含み、前記回路は前記ロボットが動作する環境内の障害物によって占有されるそれぞれの単位体積をそれぞれ表す、請求項９３から９９のいずれかに記載の方法。
＜請求項１０１＞
少なくとも１つのプロセッサが、少なくとも前記第１のロボットが動作する環境内の１つまたは複数の障害物によって占有される複数の単位体積のそれぞれを表す複数の回路を実装するように構成される、請求項１００の方法。
＜請求項１０２＞
複数の計画グラフを使用するプロセッサベースのロボット制御システムであって、各計画グラフは複数のエッジによって接続された複数のノードをそれぞれ含み、各ノードは第１のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第１のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれは、それぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの１つによって表され、
前記システムは、
少なくとも１つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも１つを記憶する少なくとも１つの非一時的プロセッサ可読媒体を有し、
前記少なくとも１つの非一時的プロセッサ可読媒体は、前記少なくとも１つのプロセッサによって実行されるときに、前記少なくとも１つのプロセッサに、
前記複数の計画グラフのうちの第１の計画グラフに対し、
第１の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第１の計画グラフを更新するステップと、
更新された前記第１の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップと、
更新された前記第１の計画グラフから、前記１つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、
前記方法はさらに、
前記最適化された結果が満足条件を満たさないと判断したことに応じて、
第２の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第２の計画グラフを更新するステップと、
更新された前記第２の計画グラフの最適化がもし存在するのならその最適化を実行し、１つまたは複数の最適化された結果を特定するステップ
を実行させる、プロセッサベースのロボット制御システム。
＜請求項１０３＞
前記少なくとも１つのプロセッサによって実行されるとき、前記少なくとも１つのプロセッサ実行可能命令またはデータは前記少なくとも１つのプロセッサに、請求項９４〜１０１の方法のいずれかを実行させる、請求項１０２に記載のプロセッサベースのロボット制御システム。
【図１】
2021513466.tif 000003
【図２】
2021513466.tif 000004
【図３】
2021513466.tif 000005
【図４Ａ】
2021513466.tif 000006
【図４Ｂ】
2021513466.tif 000007
【図５】
2021513466.tif 000008
【図６】
2021513466.tif 000009
【図７】
2021513466.tif 000010
【図８】
2021513466.tif 000011
【図９】
2021513466.tif 000012
【図１０】
2021513466.tif 000013
【国際調査報告】
2021513466.tif 000014
2021513466.tif 000015