JP2022009305A - 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作 - Google Patents

1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作 Download PDF

Info

Publication number
JP2022009305A
JP2022009305A JP2021171704A JP2021171704A JP2022009305A JP 2022009305 A JP2022009305 A JP 2022009305A JP 2021171704 A JP2021171704 A JP 2021171704A JP 2021171704 A JP2021171704 A JP 2021171704A JP 2022009305 A JP2022009305 A JP 2022009305A
Authority
JP
Japan
Prior art keywords
robot
processor
edge
environment
volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021171704A
Other languages
English (en)
Other versions
JP7055511B2 (ja
Inventor
ソリン,ダニエル
Sorin Daniel
コニダリス,ジョージ
konidaris George
マーレイ,シーン
Murray Sean
フロイド-ジョーンズ,ウィリアム
Floyd-Jones William
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Realtime Robotics Inc
Original Assignee
Realtime Robotics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Realtime Robotics Inc filed Critical Realtime Robotics Inc
Publication of JP2022009305A publication Critical patent/JP2022009305A/ja
Application granted granted Critical
Publication of JP7055511B2 publication Critical patent/JP7055511B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40442Voxel map, 3-D grid map
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40446Graph based
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40448Preprocess nodes with arm configurations, c-space and planning by connecting nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

【課題】プロセッサ上の環境の離散化された表現を記憶するロボットのモーションプラニングを容易にするシステム及び方法を提供する。【解決手段】ロボット制御システムはロボット掃引体積の離散化表現を生成し、ロボットが動作する環境の離散化表現を生成するために使用するいくつかの離散化のうちのどれを使用するかを決定する。環境及びその中の障害物を表す障害物ボクセル(またはボックス)はプロセッサにストリーミングされオンチップ環境メモリに記憶される。実行時に、ロボット制御システムはオフチップまたはオンチップメモリに記憶された複数のロボットのモーションプラニンググラフの間で動的に切り替えることができる。実行時に複数のロボットのモーションプラニンググラフの間で動的に切り替えることによりロボット自体の特性が変化することにつれて比較的低コストでロボットがロボットのモーションプラニングを実行するステップが可能になる。【選択図】図2

Description

本開示は一般に、ロボットのモーションプラニング(又は、動作プラニング/動作計画/motion planning/動作を計画すること)に関し、特に、1つまたは複数のプロセッサ上の環境の離散化された表現を記憶するロボットのモーションプラニングを容易にするシステムおよび方法に関する。
ロボット制御やロボット工学において、ロボットのモーションプラニングは基本的な問題である。モーションプラニングは、ロボットがスタート状態からゴール状態に追従できる経路を完全に指定し、通常では、動作環境で障害物との衝突が無く、又は、動作環境で障害物に衝突する可能性が小さい。モーションプラニングの課題には、ロボット自体の特性が変化しても、比較的低コストで非常に高速な速度でモーションプラニングを実行する能力が含まれる。例えば、そのような特性はロボットが様々なサイズの物体を保持しているとき、異なるエンドエフェクタに変更するとき、または異なる付属肢(又は、付属物/appendageに変更するときに、ロボットによって占有されていると考えられる容積を含み得る。また、プロセッサチップ回路上に記憶することができる限られた量のロボットのモーションプラニング情報に関しても課題がある。
ロボット制御システムにおける動作方法は、環境内で動作する第1のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフ(又は、計画グラフ)を決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペア(又は、対)の間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップと、第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップを有し、第2の物理的寸法のセットのうちの少なくとも1つの寸法が前記第1のセットの前記寸法のうちの対応する1つと相違する、方法と要約され得る。
前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、前記第1のロボットは前記第1の付属肢に取り付けられた第1のエンドエフェクタを有し、前記第1のエンドエフェクタは、少なくとも第1のエンドエフェクタ配置と第2のエンドエフェクタ配置との間で移動するように選択的に動作可能であり、前記方法は、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが第1のエンドエフェクタ配置にあることを決定するステップをさらに有し、前記第1の物理的寸法のセットは前記第1のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第1のエンドエフェクタ配置にあることの決定に応答し得る。
前記第1の付属肢に取り付けられた第1のエンドエフェクタが第2のエンドエフェクタ配置にあると判定するステップをさらに有し、前記第2の物理的寸法のセットは前記第2のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第2のエンドエフェクタ配置にあることの決定に応答し得る。前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを有し、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは、前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、前記方法は、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあるという決定に応答する、該ステップと、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあるという決定に応答する、該ステップをさらに有し得る。前記第1のロボットは、前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、前記方法は、前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有すると決定するステップをさらに有し、前記第1の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第1のエンドエフェクタの寸法のセットを表し、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有するという決定に応答する方法であり得る。
前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有すると決定するステップをさらに有し、前記第2のエンドエフェクタが前記第1のエンドエフェクタとは少なくとも1つの形状またはサイズで相違し、前記第2の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第2のエンドエフェクタの寸法のセットを表し、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップが、前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有するという決定に応答する方法であり得る。
前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し(例えば、燃料の消費によって重量が変化し得るために速度が変化し、移動距離が変化し得る)、前記方法は、前記自律車両または半自律車両のうちの少なくとも1つが第1の物理的状態にあると判定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記自律車両または半自律車両のうちの少なくとも1つが前記第1の物理的状態にあるという決定に応答する、該ステップと、前記自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあるという決定に応答する、該ステップをさらに有し得る。少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を前記少なくとも1つのプロセッサの複数の回路の各々に適用して、どのエッジが前記ロボットが動作する環境内の障害物によって占有される単位体積と衝突するかを決定するステップを含み得る。少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を、前記少なくとも1つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を2つ以上のボクセルをカバーする(含む)体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を2つ以上のボクセルをカバーする体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズム(直方体)で表すそれぞれのエッジ情報のセットを生成するステップを含み得る。それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズム(直方体)で表すそれぞれのエッジ情報のセットを生成するステップは、前記矩形プリズムの各々に対して、それぞれの矩形プリズムの体積を完全に規定する三次元座標のセットを格納するステップを含み得る。複数の計画グラフを決定するステップと、それぞれのエッジ情報のセットを生成するステップが、実行前期間中に実行され得る。少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、実行時期間中に実行され得る。
プロセッサベースのロボット制御システムは、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、環境内で動作する第1のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップと、第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップを実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する、少なくとも1つの非一時的プロセッサ可読媒体を有し、前記第2の物理的寸法のセットのうちの少なくとも1つの寸法が前記第1のセットの前記寸法のうちの対応する1つと相違する、プロセッサベースのロボット制御システムであり得る。
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに任意の上記方法を実行させ得る。
ロボット制御システムにおける動作方法は、少なくとも第1のロボットが動作する1つ以上の障害物によって占有される環境の第1の離散化された表現に対して、少なくとも1つのプロセッサに前記環境の第1の離散化された表現の少なくとも一部を供給するステップと、前記少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記複数の計画グラフの各計画グラフが前記第1のロボットの異なる物理的寸法のセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間を遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは、前記第1の計画グラフのノードのペアのそれぞれによって表され、
前記ノードのペアのそれぞれは前記第1の計画グラフのそれぞれのエッジによって接続され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表す、該ステップと、対応する遷移が前記ロボットの少なくとも一部と前記環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第1の計画グラフのエッジのいずれかを特定(又は、識別)するステップを有し得る。
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、前記エッジのうちの1つについての前記エッジ情報を、前記少なくとも1つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含み得る。前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも1つのプロセッサの複数の回路のそれぞれに前記それぞれのエッジについての前記エッジ情報を並列に適用するステップを含み得る。前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを適用するステップを含み得る。前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を体積単位で表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ2つ以上のボクセルをカバーし得る。前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ2つ以上のボクセルをカバーし得る。前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップが、前記矩形プリズムのそれぞれについて、それぞれの前記矩形プリズムの体積を完全に定義する3次元座標のペアを格納するステップを含み得る。
前記方法は、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップであって、前記第2の配置は前記第1の配置とは相違する、該ステップと、複数の前記計画グラフの第2の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に、前記第1のロボットの少なくとも一部により掃引される体積を表し、前記第1のロボットの状態のペアは前記第2の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのそれぞれのペアは前記第2の計画グラフのそれぞれのエッジによって結合され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、前記第2の計画グラフは第1の計画グラフと相違する、該ステップと、対応する遷移が前記ロボットの少なくとも一部と環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第2の計画グラフの前記エッジのいずれかを特定するステップをさらに有し得る。
前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢を含み、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップが、第2のエンドエフェクタが第1のエンドエフェクタの代わりに前記第1の付属肢に取り付けられるかまたは取り付けられていることを決定するステップを含み得る。前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを含み、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップを含み得る。前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップは、前記第1のエンドエフェクタが把持していない配置と把持している配置との間で遷移しているかまたは遷移したことを決定するステップを含み得る。前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記自律車両または半自律車両のうちの少なくとも1つが、前記自律車両または半自律車両のうちの少なくとも1つの前記第1及び第2の配置間で遷移しているかまたは遷移したことを決定するステップを含み得る。前記少なくとも1つのプロセッサに前記第1の計画グラフの各エッジのエッジ情報のそれぞれのセットを提供するステップは実行期間中に前記エッジ情報のそれぞれのセットを非一時的記憶装置から取り出すステップを含み、前記エッジ情報のそれぞれのセットは実行前期間中に前記非一時的記憶装置に記憶され得る。前記少なくとも1つのプロセッサはフィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つのプロセッサの複数の回路のそれぞれに前記エッジのうちの1つのためのエッジ情報を適用するステップを含み得る。
前記少なくとも1つのプロセッサ上のメモリに前記環境の第1の離散化された表現を記憶するステップと、前記少なくとも1つのプロセッサ上のメモリに前記環境の第1の離散化された表現を記憶した後、前記少なくとも1つのプロセッサとは別個の記憶装置から前記少なくとも1つのプロセッサによって前記エッジ情報のセットを受信するステップを含み得る。
プロセッサベースのロボット制御システムは、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、少なくとも第1のロボットが動作する1つまたは複数の障害物によって占有される環境の第1の離散化された表現に対して、環境の第1の離散化された表現の少なくとも一部を少なくとも1つのプロセッサに供給するステップと、少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、エッジ情報のそれぞれのセットを少なくとも1つのプロセッサに提供するステップであって、前記複数の計画グラフのうちの第1の計画グラフの各エッジは第1のロボットの物理的寸法の異なるセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは前記第1の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのペアのそれぞれは前記第1の計画グラフのエッジのそれぞれにより結合され、前記エッジのそれぞれは前記第1のロボットの状態のペアのそれぞれの間の遷移を表す、該ステップと、対応する遷移が前記ロボットの少なくとも一部と、前記環境内の1つまたは複数の障害物の少なくとも一部の間の衝突をもたらすことになる前記第1の計画グラフの前記エッジのいずれかを特定するステップを実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し得る。
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、上記方法のいずれかを実行させ得る。
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法は、タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、複数の反復のそれぞれについて、少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状(又は、離散化内のサイズおよび形状)のうちの少なくとも1つにおいて不均一(又は、不均質、非一様)であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを有し得る。
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの体積のそれぞれと比較して比較的小さい体積を有する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第3の体積が第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数の前記ボクセルが第3の体積を有し、前記第2の体積は前記第1の体積とは相違し、前記第3の体積が前記第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルの各々の形状が、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルの各々の形状と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第3の形状が前記第2の形状と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状が前記第1の形状と相違し、前記第3の形状が前記第2の形状と相違する、第1の離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した複数の前記ボクセルが第3の形状を有し、前記第2の形状は前記第1の形状とは相違し、前記第3の形状は第2の形状とは相違する、第1の離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第1のそれぞれの離散化を生成するステップを含み得る。少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方とは相違し、形状のうちの少なくとも1つが非立方体である、第1のそれぞれの離散化を生成するステップを含み得る。前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突のない経路をもたらす可能性が最も高いかを決定するステップを含み得る。前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突の確率が最も低い経路をもたらす可能性が最も高いかを決定するステップを含み得る。前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、最も低コストの衝突のない経路をもたらす可能性が最も高いかを決定するステップを含み得る。少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップは、複数のシナリオの各々に対して少なくとも1つの生成されたそれぞれの離散化を、生成されたそれぞれの離散化のうちのどれが複数のシナリオの各々に対して使用されるべきかの指示と共に記憶するステップを含み得る。
モーションプラニングを容易にするためのプロセッサベースのシステムは、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、複数の反復のそれぞれについて、少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状(又は、それぞれの離散化でのサイズおよび形状)のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する、少なくとも1つの非一時的プロセッサ可読媒体を有し得る。
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、上記方法のいずれかを実行させ得る。
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法は、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの(又は、多数の)掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップを有し得る。
いくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップは、特定されたシナリオに基づいて少なくとも2つの離散化の中から選択するステップを含み、それぞれの離散化のうちの少なくとも2つのボクセルはそれぞれの離散化におけるサイズおよび形状(又は、それぞれの離散化でのサイズおよび形状)のうちの少なくとも1つにおいて不均一であり、それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布は互いに相違し得る。決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの体積と比較して比較的小さな体積を有するような前記決定された離散化を用いて前記エッジのそれぞれの掃引された体積を決定するステップを含み得る。
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積とは異なるような前記決定された離散化を用いて、前記エッジのそれぞれの掃引された体積を決定するステップを含み得る。決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第3の体積が前記第2の体積とは異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含み得る。決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを有し得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における前記複数のボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の前記複数のボクセルの各々の形状と相違する、該ステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記第2の体積が前記第1の体積と相違する、該ステップを有し得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第3の形状が前記第2の形状とは相違する、該ステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状が前記第1の形状とは相違し、前記第3の形状が前記第2の形状とは相違する、該ステップを含み得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを有し得る。前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における前記複数のボクセルの各々の形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の前記複数のボクセルの各々の形状および体積の両方と相違し得る。
前記方法は、前記特定されたシナリオを受信するステップをさらに含み得る。
前記方法は、少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップをさらに有し、前記エッジ情報のそれぞれのセットは、前記ロボットの1つのペアの状態間の遷移の際に前記第1のロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表し得る。
前記少なくとも1つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、前記フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つのプロセッサの複数の回路のそれぞれに、前記ロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表すそれぞれのエッジ情報のセットを適用して、前記ロボットの1つのペアの状態間を遷移させるステップをさらに有し得る、
モーションプラニングを容易にするためのプロセッサベースのシステムであって、前記システムは、少なくとも1つのプロセッサと、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、前記エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップを実行させる、プロセッサベースのシステムであり得る。
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、上記方法のいずれかを実行させうる。
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法は、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップと、環境を感知する1つまたは複数のセンサによって生成されたセンサ情報を受け取るステップであって、前記センサ情報は障害物を含み得る環境を表す、該ステップと、決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状(又は、それぞれの離散化でのサイズおよび形状)のうちの少なくとも1つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性と相違する、該ステップを有し得る。
上記方法は、少なくとも1つの非一時的プロセッサ可読媒体に、生成された前記障害物を含み得る環境の離散化表現を記憶するステップをさらに有し得る。
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含み得る。決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、ロボットにより掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、特定された前記シナリオに基づいて少なくとも2つの離散化の間で選択するステップを含み、それぞれの前記離散化のうちの少なくとも2つのボクセルは前記それぞれの離散化におけるサイズおよび形状(又は、それぞれの離散化でのサイズおよび形状)のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違し得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の少なくとも1つの領域の複数のボクセルの各々が前記ロボットの後方の少なくとも1つの領域の複数のボクセルの各々のそれぞれの体積と比較して相対的に小さい体積を有する、該離散化を使用して環境の離散化された表現を生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積と相違する、該離散化を使用して環境の離散化された表現を生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第3の体積が第2の体積と相違する、該離散化を使用して生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第2の体積が第1の体積と相違し、第3の体積が第2の体積と相違する、該離散化を使用して生成するステップを含み得る。障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、決定された前記離散化であって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを含み得る。障害物を含み得る前記環境の離散化表現を生成するステップは、前記ロボットの前方の少なくとも1つの領域内の複数のボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の複数のボクセルの各々の形状と相違する、前記決定された離散化を使用して、前記環境の離散化表現を生成するステップを含み得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数のボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数のボクセルが第3の形状を有し、前記第3の形状が前記第2の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数のボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数のボクセルが第3の形状を有し、前記第2の形状が第1の形状と相違し、前記第3の形状が第2の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの直前の第1の領域内の複数の前記ボクセルの各々が第1の形状を有し、前記ロボットの前記における前記ロボットに関して前記第1の領域から相対的に外側に離間した複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した複数の前記ボクセルが第3の形状を有し、前記第2の形状が第1の形状と相違し、前記第3の形状が第2の形状と相違し得る。障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第1のそれぞれの離散化を生成し得る。
前記方法は、前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、受け取った情報に少なくとも部分的に基づいて特定されたシナリオを特定し得る。
前記方法は、前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、受け取った情報に少なくとも部分的に基づいて特定されたシナリオを特定するステップ
をさらに含み得る。
前記方法は、前記環境の離散化された表現を少なくとも1つのプロセッサに提供するステップをさらに含み得る。
前記方法は、
前記少なくとも1つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、前記環境の離散化された表現を、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された複数の回路のそれぞれに適用するステップをさらに含み得る。
モーションプラニングを容易にするためのプロセッサベースのシステムは、少なくとも1つのプロセッサと、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害物を含み得る環境の離散化表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、環境を感知する1つまたは複数のセンサによって前記障害物を含み得る環境を表すセンサ情報を受け取るステップと、決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性と相違する、該ステップを実行させ得る。
前記方法は、前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、上記方法のいずれかを実行させ得る。
複数の計画グラフを使用するロボット制御システムにおける動作方法は、各計画グラフは複数のエッジによってそれぞれ接続された複数のノードをそれぞれ含み、各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれはそれぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表され、前記方法は、前記複数の計画グラフのうちの第1の計画グラフに対し、 第1の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第1の計画グラフを更新するステップと、 更新された前記第1の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップと、 更新された前記第1の計画グラフから、前記1つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、前記方法はさらに、前記最適化された結果が満足条件を満たさないと判断したことに応じて、 第2の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第2の計画グラフを更新するステップと、 更新された前記第2の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップを含み得る。
上記方法は、更新された前記第2の計画グラフから、前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップをさらに含み得る。
上記方法は、 前記更新された第2の計画グラフからの前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、更新された前記第2計画グラフからの前記1つまたは複数の最適化された結果の1つによって特定された遷移を前記ロボットに適用するステップをさらに有し得る。
上記方法は、前記更新された第2の計画グラフからの前記1つまたは複数の最適化された結果がもし存在しないのなら、当該結果が前記満足条件を満さないと決定したことに応答して、 第3の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第3の計画グラフを更新するステップと、 更新された前記第3の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップをさらに有し得る。
上記方法は、前記更新された第3の計画グラフからの前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、更新された前記第3計画グラフからの前記1つまたは複数の最適化された結果の1つによって特定される遷移をロボットに適用するステップをさらに有し得る。
上記方法は、更新された前記第2の計画グラフから、もし存在するのなら前記1つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が任意の経路を生成するかどうかを決定するステップを含み得る。
上記方法は、更新された前記第2の計画グラフから、もし存在するのなら前記1つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が衝突のない経路を生成するかどうかを決定するステップを含み得る。前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップは、前記第1の計画グラフ内の前記エッジの各々について、前記エッジに関するエッジ情報のセットを、前記複数の回路の各々に並列に適用するステップを含み、前記回路は前記ロボットが動作する環境内の障害物によって占有されるそれぞれの単位体積をそれぞれ表し得る。少なくとも1つのプロセッサが、少なくとも前記第1のロボットが動作する環境内の1つまたは複数の障害物によって占有される複数の単位体積のそれぞれを表す複数の回路を実装するように構成され得る。
プロセッサベースのロボット制御システムは、複数の計画グラフを使用するプロセッサベースのロボット制御システムであって、各計画グラフは複数のエッジによって接続された複数のノードをそれぞれ含み、各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれは、それぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表され、前記システムは、少なくとも1つのプロセッサと、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、前記複数の計画グラフのうちの第1の計画グラフに対し、 第1の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第1の計画グラフを更新するステップと、 更新された前記第1の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップと、 更新された前記第1の計画グラフから、前記1つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、前記方法はさらに、前記最適化された結果が満足条件を満たさないと判断したことに応じて、 第2の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、 前記衝突検査に基づいて前記第2の計画グラフを更新するステップと、 更新された前記第2の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップを実行させ得る。
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、上記方法のいずれかを実行させ得る。
図面において、同一の参照番号は、同様の要素または作用を示す。図面における要素のサイズおよび相対位置は、必ずしも一定の縮尺で描かれてはいない。例えば、さまざまな要素の形状および角度は一定の縮尺で描かれず、これらの要素のいくつかは、図面を見やすくするために、随時適当に拡大および配置されている。さらに、描かれた要素の特定の形状は、特定の要素の実際の形状に関するいかなる情報も伝えることを意図しておらず、図面における認識を容易にするために単に選択されたものである。
図1は、1つの例示としての実施形態に従った、ロボットが動作し得る環境の概略図である。 図2は、1つの例示としての実施形態に従った、図1の環境で動作し得るロボットのロボット制御システムの機能ブロック図である。 図3はロボットが動作することができる図1の環境の概略図であり、1つの例示としての実施形態に従って、ロボットが3次元(3D)空間内の1つの位置から、環境内の3D空間内の別の位置に遷移するロボットと、3D空間内の1つの位置から3D空間内の別の位置に遷移する際に、ロボットの付属物によって掃引される体積の表現とを示す。 図4Aは、1つの例示としての実施形態に従った、対応する遷移がロボットと環境内の1つ以上の障害物との間の衝突をもたらし得ることが決定された計画グラフのエッジを含む、図1のロボットのための例示的なロボットのモーションプラニンググラフである。 図4Bは、1つの例示的実施形態に従う、対応する遷移がロボットと環境内の1つまたは複数の障害物との間の衝突をもたすであろうことが決定された計画グラフのエッジが除去された図1のロボットのための例示的ロボットのモーションプラニンググラフである。 図5は、1つの例示としての実施形態に従った、特定の状況に従った異なる計画グラフのエッジ情報を提供することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。 図6は、1つの例示としての実施形態に従った、対応する遷移が衝突をもたらすであろう計画グラフのエッジを特定することによってロボットのモーションプラニングを容易にするロボット制御システム内の動作方法を示すフロー図であり、該計画グラフはオフチップメモリに記憶された複数の計画グラフの1つであり、その各々は、ロボットの異なる物理的寸法のセットに関連付けられている。 図7は、1つの例示としての実施形態に従った、ロボットが動作する環境の表現の生成された非均一(又は、非一様)な離散化の有効性を評価することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。 図8は、1つの例示としての実施形態に従った、ロボットが通過するであろうそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用すべきかを決定することによってロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。 図9は、1つの例示としての実施形態に従った、ロボットが決定された離散化を用いて動作する環境の離散化された表現を生成することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。 図10は、1つの例示としての実施形態に従った、計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによって、ロボットのモーションプラニングを容易にするロボット制御システムにおける動作方法を示すフロー図である。
種々の実施態様が正しく理解されるように、開示内容の詳細を以下に説明する。但し、当業者ならば、これら特定の細部の1つまたは2つ以上を欠いても、または他の方法、他の構成部材、他の材料でも実施が可能であることは容易に理解するところであろう。他の例では、コンピュータシステム、アクチュエータシステム、および/または通信ネットワークに関連する周知の構造は実施形態の説明を不必要に曖昧にすることを避けるために、詳細には示されておらず、または説明されていない。他の例では実施形態の説明を不必要に曖昧にすることを回避するために、1つまたは複数のオブジェクトなどの知覚データおよびボリュメトリック表現を生成するための周知のコンピュータビジョン方法および技法は詳細には説明されていない。
本明細書及び特許請求の範囲において理由が必要ない限り、用語”を有する”及びその派生語は確定していない包括的な意味、即ち、”含む”であるとみなされるが、それに限定されるものではない
本明細書全体を通して、「1つの実施形態」または「一実施形態」とは実施形態に関連して説明された特定の特徴、構成または特徴が少なくとも一実施形態に含まれることを手段し、したがって、本明細書全体を通して様々な場所に「1つの実施形態において」または「一実施形態において」という語句が現れることは必ずしもすべてが同じ実施形態を指すわけではない。さらに、特別な特徴、構造又は特質は1以上の実施形態において任意の適当な方法で組み合わせられ得る。
本明細書および添付の特許請求の範囲で使用されるように、単数形「a」、「an」、および「the」は内容が別段の明確な指示をしない限り、複数の指示対象を含む。また、用語「または」は内容が別段の明確な指示をしない限り、「および/または」を含む意味で一般に使用されることにも留意されたい。
冒頭の説明及び要約は便宜上のものであり、本発明の範囲を表すものではなく、又は実施形態を意味するものでもない。
図1は、1つの例示としての実施形態に従った、ロボット102が動作し得る動作環境100を示す。簡潔にするために、本明細書では、動作環境100を環境100と呼ぶ。環境はロボット102が動作し、移動することができる二次元または三次元空間を表す。ロボット102はデカルト、ロボットアセンブリ(SCARA)のための選択的に従順なアーム、円筒形、デルタ、極性、および垂直関節を含むが、これらに限定されない、任意のタイプのロボットであってもよい。また、ロボットは自律的に又は半自律的に(すなわち、少なくとも部分的には自律的に)作動し、環境100によって表される空間内を移動することができる自動車、飛行機、ドローン、又は任意の他の車両であってもよい。環境100は、図4Aおよび図4Bのロボットのモーションプラニンググラフに関して以下で参照され、「自動車および再構成可能な移動計画プロセッサのための移動計画」と題されたその全体が参照により本明細書に組み込まれる2017年6月9日に出願された国際特許出願第PCT/US2017/036880号、ならびに「特定のロボット移動計画ハードウェアおよびその製造および使用方法」と題されたその全体が参照により本明細書に組み込まれる2016年1月5日に出願された国際特許出願第WO2016/122840号に説明される、ロボットの「構成空間」(しばしば「C空間」と呼ばれる)とは異なるロボットが動作する2次元または3次元空間である。構成空間は典型的には多くの次元(すなわち、3次元より大きい)である。特に、計画グラフの各ノードはロボットの特定の構成(ロボットの関節位置の特定のセットの完全な仕様である)、ロボットの姿勢、速度、および方位を含むことができるが、これらに限定されない、ロボットの状態を表す。計画グラフの各エッジは、ある状態から別の状態へのロボットの遷移を表す。
図1を参照すると、環境100は、障害物衝突領域を含み得る。これらの障害物衝突領域は環境100内の静的物体(例えば、建物、樹木、岩、家具等)または動的物体(例えば、他のロボット、車両、人間、動物、転動岩、鳥等)によるものであり得る。例えば、障害物A112および障害物B104はロボット102が障害物A112または障害物B104のいずれかと同時に環境100内の同じ空間を占有しようとした場合に、ロボット102が障害物A112または障害物B104と衝突することが可能であるように、環境100内に衝突領域を作り出す物体を表す。様々な実施形態では、図1に示すオブジェクトよりも少ないオブジェクトまたは追加のオブジェクトが存在し得る。
ロボットのモーションプラニングの課題は、比較的低コストで、非常に高速で、ロボット自体の特性が変化することにつれて頻繁にロボットのモーションプラニングを実行できるようにすることを含む。例えば、そのような特性はロボットが様々なサイズの物体を保持しているとき、異なるエンドエフェクタに変更するとき、または異なる付属肢(又は、付属物)に変更するときに、ロボットによって占有されると考えられる容積を含むことができるが、これらに限定されない。したがって、ロボット102は運動を実行するために、これらの変化にキャッチアップしている(対応できる)ことが有利である。これに関与するのは、ロボット102および環境100内の障害物が占有されていると考えられる空間を効率的に表現し、伝達し、比較するための課題である。例えば、図1に示されるように、障害物A112は、現在、ロボット102の前方にある。ロボット102が、ロボットアーム106のどの動作(およびロボット102の任意の動作)が障害物A112との衝突をもたらすかどうかを迅速かつ効率的に判定することができることは有利である。したがって、本開示はロボット102が環境100内のロボット102および障害物A112によって占有される空間を効率的に表現し、通信し、比較することを可能にする解決策を提供し、ロボットアーム106のどの動作が障害物A112との衝突をもたらすかを判断することを容易にする。
図1は代表的な環境100を示すが、典型的な環境は他のロボットに対応する物体、ならびに様々な他の自然または人工の静的および動的な物体および障害物を含む、多くの追加の物体および実体を含み得る。本明細書で教示する概念は、図示したものよりも混雑した環境で同様に使用することができる。
図2および以下の議論は、1つの例示としての実施形態に従って、様々な例示および説明されたロボットのモーションプラニングシステムおよび方法が実施され得る、適切なロボット制御システム200の簡潔で、一般的な説明を提供する。
必須ではないが、多くの実施形態はコンピュータまたはプロセッサ読み取り可能媒体上に記憶され、衝突評価およびロボットのモーションプラニング動作を実行することができる1つ以上のコンピュータまたはプロセッサによって実行されるプログラムアプリケーションモジュール、オブジェクト、またはマクロなどの、コンピュータ実行可能命令の一般的なコンテキストで説明される。そのようなロボットのモーションプラニング動作は計画グラフのエッジに関連するロボット掃引体積の1つまたは複数の離散化された表現を生成することと、ロボット掃引体積の離散化された表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定することと、ロボット102が動作することになる環境の離散化された表現を生成すること、環境の離散化された表現を生成するために、複数の離散化のうちのどれを使用するかを決定すること、決定された複数の計画グラフおよびエッジ情報のそれぞれのセットを記憶すること、計画グラフのノードによって表される状態の間を遷移する際にロボット102の少なくとも一部によって掃引される体積(又は、ボリューム、容積、立体的な部分又は場所)を表す情報を生成すること、計画グラフのエッジに関する衝突評価を実行すること、計画グラフから1つまたは複数の最適化された結果を特定すること、計画グラフのエッジに関連する掃引体積の離散化された表現と、ロボット102が動作する環境内の障害物の離散化された表現との間の衝突を検査することと、最適化がロボット102のための衝突のない経路を生成するかどうかを決定すること、ロボット102のためのロボットのモーションプラニングを実施すことのうちの1つまたは複数を含むことができるが、それらに限定されない。
図1のロボット102は、プロセッサ212aなどの1つまたは複数のプロセッサに知覚データを送る、図2に示すセンサ282などのセンサを有する。知覚データは、ボクセルまたはボックスが現在の環境に存在するストリームである。このデータは、プロセッサ212aなどの1つまたは複数のプロセッサによって、占有グリッドの形で生成される(または提供される)。特に、ロボットまたは環境100内の物体(例えば、障害物)のいずれかを表す場合、それらの表面をボクセル(3Dピクセル)またはポリゴンのメッシュ(しばしば三角形)のいずれかとして表すことができる。空間の各離散化された領域は、「ボクセル」と呼ばれ、3D(ボリュメトリック)ピクセルと等価である。場合によっては、代わりに物体をボックス(矩形プリズム(又は、長方形プリズム/rectangular prism))として表すことが有利である。物体がランダムに成形されていないという事実のために、ボクセルがどのように編成されるかにはかなりの量の構造が存在することがあり、物体内の多くのボクセルは3D空間内で互いにすぐ隣り合っている。したがって、オブジェクトをボックスとして表すことは、はるかに少ないビットを必要とすることがある(すなわち、ボックスの2つの対向するコーナーについてx,y,zデカルト座標だけを必要とすることがある)。また、ボックスに対して交差テストを行うことは、ボクセルに対して行うことに匹敵する複雑さである。
多くの実施形態は複数のセンサの出力を組み合わせることができ、センサは、非常に細かい粒度のボクセル化を提供することができる。しかし、ロボット102がロボットのモーションプラニングを効率的に実行するために、ロボット102のプロセッサ212aは様々な状態間の遷移を行うときに、ロボット102によって掃引される3D空間内の環境および体積を表すために、より粗いボクセル(すなわち、「プロセッサボクセル」)を使用することができる。したがって、システム200は、それに応じてセンサ282の出力を変換することができる。例えば、センサ282の出力は各軸上で10ビットの精度を使用することができ、したがって、センサ282から直接生じる各ボクセル(すなわち、「センサボクセル」)は30ビットIDを有し、230のセンサボクセルが存在する。システム200は18ビットのプロセッサボクセルIDに対して、それぞれの軸上で6ビットの精度を(設計時および実行時に)使用し、218のプロセッサボクセルが存在する。したがって、プロセッサボクセルごとに212のセンサボクセルがある。実行時に、システム200が、プロセッサボクセル内のセンサボクセルのいずれかが占有されていると判定した場合、システム200はプロセッサボクセルが占有されていると見なし、それに応じて占有グリッドを生成する。
ロボット102のための計画グラフの各エッジはまた、そのエッジによって表されるある状態から別の状態への計画グラフにおける遷移を行うときに、ロボット102によって掃引される3D空間内の体積に対応するいくつかの数のボクセル(またはボックス)を有する。ある状態からそのエッジによって表される別の状態への計画グラフの遷移を行うときにロボット102によって掃引されるこれらのボクセルまたはボックスは、計画グラフエッジ情報メモリ284などの計画グラフに専用のオフチップメモリに計画グラフの各エッジごとに記憶することができる。様々な他の実施形態では、ある状態からそのエッジによって表される別の状態への計画グラフの遷移を行うときにロボット102によって掃引されたボクセルまたはボックスが例えば、1つまたは複数の特定用途向け集積回路(ASIC)内のオンチップメモリなどの他の位置に、計画グラフの各エッジごとに格納することができる。
1つの実施形態では、コリジョンアセスメント(又は、衝突の評価)がまず、プロセッサ212aのようなプロセッサに、すべての障害ボクセル(またはボックス)をストリーミングすることによって実行される。例えば、環境100を表す障害物ボクセル(又はボックス)が、障害物A112及び障害物B104を含んで、プロセッサ212aにストリームされて環境メモリ294に保存され得る。環境メモリ294は、プロセッサ212aのオンチップメモリである。いくつかの実施形態では、環境メモリ294がフィールドプログラマブルゲートアレイ(FPGA)内のブロックRAM(BRAM)であってもよい。ある実施形態では、BRAMが数キロビットのランダム・アクセス・メモリを含む専用の構成可能な2ポート・メモリ・ユニットであってもよい。FPGAは、これらのブロックのいくつかを含む。次に、ロボット102に対する計画グラフの各エッジに対するエッジ情報は計画グラフエッジ情報メモリ284からのように、計画グラフに充てられたオフチップメモリからストリーミングされる。エッジボクセル(またはボックス)ごとに、エッジの掃引体積からストリーミングインされるとき、それが障害物ボクセル(またはボックス)のいずれかと衝突する場合、プロセッサ212aは、計画グラフ内のそのエッジとの衝突を判定する。
例えば、エッジボクセルが計画グラフのエッジxの掃引体積(又は、掃引体積)からストリーミングされるとき、プロセッサ212aは、エッジボクセルを環境メモリ294に記憶された全ての障害物ボクセル(又はボックス)と比較するためにブール回路(Boolean circuity)を使用することができる。システム200が比較に基づいて、エッジボクセルが障害物ボクセル(またはボックス)のいずれかと衝突すると判定した場合、システム200は、エッジxとの衝突に注目する(又は、衝突を記録する)。この実施形態は、衝突評価が計画グラフのすべてのエッジ上で並行して実行される他の設計と比較して、衝突評価においてはるかに大きな計画グラフを使用することを可能にするので、衝突評価の技術を改善する。特に、これは、プロセッサチップ回路上に記憶することができる限られた量の計画グラフ情報に関して、他の設計の欠点を克服するのに役立つ。本明細書で説明する衝突評価方法を使用すると、環境メモリ294などのオンチップ記憶装置は、多くの場合、すべての障害物ボックスを記憶するのに十分である(ボクセルを使用するほどではない場合があるが)。これは、より安価なオフチップ記憶装置に大きな計画グラフおよび/または複数の計画グラフを記憶する能力を提供する。例えば、これは大きな計画グラフおよび/または複数の計画グラフを、いくつかの実施形態ではダイナミックランダムアクセスメモリのような安価なタイプのメモリである計画グラフエッジ情報メモリ284に記憶する能力を提供する。
様々な実施形態では、そのような動作が完全にハードウェア回路で、またはシステムメモリ214などのメモリストレージに格納されたソフトウェアとして実行され、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)プロセッサ、プログラムドロジックコントローラ(PLC)、電気的プログラマブルリードオンリメモリ(EEPROM)などの1つまたは複数のハードウェアプロセッサ212aによって、またはメモリストレージに格納されたハードウェア回路およびソフトウェアの組合せとして実行され得る。
また、知覚、計画グラフ構築、衝突検出、および経路探索の様々な関連する態様の実施は2017年6月9日に出願された国際特許出願第PCT/US2017/036880号、発明の名称「自動車および再構成可能な移動処理装置のための移動計画」、2016年1月5日に出願された国際特許出願第WO2016/122840号、発明の名称「特定のロボット移動ハードウェアおよびその製造方法および使用方法」、ならびに平成30年1月12日に出願された「動的オブジェクトを有する環境における自動車の移動を容易にするための装置、方法及び物品」という名称の米国特許出願第/616,783にも記載され、これらはその全体が参照により本明細書に組み込まれる。当業者は例示された実施形態、並びに他の実施形態がロボット、ハンドヘルドデバイス、マイクロプロセッサベース又はプログラマブルコンシューマエレクトロニクス、パーソナルコンピュータ(「PC」)、ネットワーク化されたPC、ミニコンピュータ、メインフレームコンピュータなどを含む、他のシステム構造及び構成及び/又は他のコンピューティングシステム構造及び構成で実施され得ることを理解するであろう。実施形態またはその一部は、(例えば、設計時および事前実行時に)通信ネットワークを介してリンクされたリモート処理デバイスによってタスクまたはモジュールが実行される分散コンピューティング環境で実施することができる。分散コンピューティング環境では、プログラムモジュールがローカルおよびリモート・メモリ記憶装置またはメディアの両方に配置されてもよい。しかしながら、ロボットのモーションプラニングを改善するのを助けるためには、ある種の情報がどこにどのように記憶されるかが重要である。
例えば、種々のロボットのモーションプラニングソリューションはロードマップ(すなわち、計画グラフ)をプロセッサに「焼き付け」し、ロードマップ内の各エッジはプロセッサの再構成不可能なブール回路に対応する。計画グラフがプロセッサに「焼き付け」される設計が複数または大規模な計画グラフを格納するために、限定されたプロセッサ回路を有するという問題を生じる。
1つの解決策は、計画グラフ情報をメモリ記憶装置に配置する再構成可能設計を提供する。このような解決策では再び、計画グラフの各エッジについての情報が存在するが、この情報は回路に焼き付けされる代わりにメモリに記憶される。各エッジはロボット102の動作に対応し、各動作は、3D空間内の体積(又は、体積)を掃引する。この掃引体積はいくつかの障害物ボクセル(またはボックス)と衝突するが、様々な実施形態では障害物を表すことが決定されてもよい。このような解決策では、このエッジが衝突するボクセルがメモリに記憶される情報である。
本開示はより効率的な方法で実行時に複数の計画グラフ間で動的に切り替える(すなわち、プロセッサを再構成する)ことを提供し、他の設計を超えるいくつかの改善を提供する解決策を提供する。例えば、物体を把持することができるエンドエフェクタを有するロボットを考える。何かを保持しているときと、何かを保持していないときとで、ロボットアームが3D空間の異なる部分に衝突する。一例は、エンドエフェクタを有するアームの端部に大きなボールを保持するロボットアーム106である。ロボット102が何かを保持している場合、ロボット102が「何も保持していない」ときに対応する計画グラフは機能しない。逆に、ロボット102が何も保持していない場合であっても、「何かを保持している」計画グラフを非常に控えめに使用することができるが、それは非効率的であり、ロボット102が最大の可能なオブジェクトを保持しているシナリオに対応する単一の計画グラフの使用を必要とする。代わりに、様々な実施形態ではシステム200が異なる可能な特性に対応する計画グラフのファミリー、例えば、「何も保持していない」、「サイズxの小さい球を保持している」、「サイズyの矩形プリズムを保持している」などを構築する。これらの計画グラフはロボット102が物を拾い上げ、それらを下に置くときに、プロセッサ212aによって計画グラフエッジ情報メモリ284に入れたり、そこから出したりすることができる。この解決策は、エンドエフェクタが時々変化するロボットにも適用される。例えば、ロボット102は、第1のセットの寸法を有する第1のエンドエフェクタを有する構成であってもよい。この第1のエンドエフェクタは、第2の寸法セットを有する第2のエンドエフェクタと交換されてもよい。第1のエンドエフェクタが第2の寸法セットの第2のエンドエフェクタと交換されると、ロボット102は、第2のエンドエフェクタを有する異なる配置になる。第2の寸法セットの寸法が第1の寸法セットの寸法と異なる場合、ロボットによって掃引される体積は、エンドエフェクタが入れ替わると変化する。また、例えば、ロボットが自律型または部分的に自律型の車両である場合、車両は第1の期間の間、第1の配置において第1のセットの寸法を有し、同じ車両は、第2の期間の間、第2の配置において第2のセットの寸法を有することができる。例えば、車両は第1の構成では空であり、第2の構成では完全に積載されており、それにより車両の重量が変化し、場合によっては、例えば、曲がり角またはカーブの周りをコーナリングするときに、道路上の車両の高さ、車両の下のクリアランス、または車両の軌道さえも変化し得る。第2の寸法の組の寸法が第1の寸法の組の寸法と異なる場合、車両によって掃引される容積は、第1の構成と第2の構成との間で変化する。同様に、第1の配置と第2の配置との間で軌道が変化する場合には、車両によって掃引される容積が配置間で変化する。したがって、システム200は、異なるエンドエフェクタについて、異なる計画グラフを計画グラフエッジ情報メモリ284に格納する。
計画グラフは構築するのにかなりの時間とリソースを要するが、ここで提供される解決策では実行時などの前に一度だけ実行することが必要なだけである。いったん計画グラフが生成されると、それらはすべて計画グラフエッジ情報メモリ284に記憶されてもよく、プロセッサ212aがそれらをインおよびアウトにスワップ(交換)するか(すなわち、スワップインおよびスワップアウトするか)、またはロボットが特定のサイズの物体を把持しているときなど、ロボット102の現在の特性に基づいてどちらを使用するかを選択することは、比較的迅速かつ効率的である。
上述のように、いくつかの前処理アクティビティは実行時(又は、ランタイム)の前に実行することができ、したがって、いくつかの実施形態では、これらの動作が通信ネットワークを介してネットワークインターフェース260を介してロボット制御システム200にリンクされたリモート処理デバイスによって実行することができる。例えば、プログラミング段階は、関心のある問題に対するロボットの準備を可能にする。そのような実施形態では、実行時計算を回避するために、広範囲の前処理が活用される。ロードマップ内のエッジによって表される1つの状態から別の状態への計画グラフ内の遷移を行うときにロボット102によって掃引される3D空間内の体積に関する事前計算されたデータは、計画グラフエッジ情報メモリ284に格納され、実行時にプロセッサ212aによってアクセスされ得る。システム200はまた、実行時中に起こり得るロボットの異なる可能な変化する寸法特性に対応して実行時の前に、一群の計画グラフ(計画グラフのファミリー)を構築してもよい。次に、システム200は、このような計画グラフを計画グラフエッジ情報メモリ284に記憶する。
実行時フェーズの間、センサ282は、プロセッサ212aに認識データ(知覚データ/perception data)を送信する。認識データは現在の環境に存在し、オンチップ環境メモリ294に格納されているボクセルまたはボックスのストリームであってもよい。環境メモリ294から検索された認識データを計画グラフエッジ情報メモリ284に記憶された情報と比較するためにブール回路を使用して、プロセッサ212aはどの運動が衝突を回避するかを計算し、ロボット102が従うべき計画グラフ内の対応する経路を選択する。次に、プロセッサ212aが動作し、結果として生じる経路をアクチュエータシステム266に戻す。
図2は、プロセッサ212aによって表される1つまたは複数のプロセッサと、システムメモリ214、計画グラフエッジ情報メモリ284、およびディスクドライブ224に関連するコンピュータ可読媒体226などの1つまたは複数の関連する非一時的機械可読記憶媒体とを備える、ロボット102用のものなどのロボット制御システム200を示す。システムメモリ214、計画グラフエッジ情報メモリ284、およびディスクドライブ224に関連するコンピュータ可読媒体226を含む、関連する一時的でないコンピュータまたはプロセッサ可読記憶媒体は、システムバス216などの1つ以上の通信チャネルを介してプロセッサ212aに通信可能に結合される。システムバス216は、メモリコントローラを備えたメモリバス、周辺バス、および/またはローカルバスを含む、任意の既知のバス構造またはアーキテクチャを採用することができる。1つまたは複数のセンサ282およびアクチュエータシステム266も、システムバス216を介してプロセッサ212aに通信可能に結合される。このようなコンポーネントの1つ以上は例えば、ユニバーサルシリアルバス3.0、PCIe(Peripheral Component Interconnect Express)、またはThunderbolt(登録商標)を介して、1つ以上のパラレルケーブル、シリアルケーブル、または高速通信が可能なワイヤレスネットワークチャネルなど、1つ以上の他の通信チャネルを介して、互いに通信する場合もあれば、その代わりに通信する場合もある。
また、ロボット制御システム200はネットワークインターフェース260を介してロボット制御システム200の様々な構成要素に直接通信可能に結合または間接通信可能に結合された遠隔システム、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ウルトラポータブルコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルコンピュータ(図示せず)に通信可能に結合されてもよい。そのような遠隔システムはロボット制御システム200およびロボット制御システム200内の様々な構成要素とプログラムし、構成し、制御し、またはさもなければインターフェースし、またはそれらにデータを入力するために使用されてもよい。このような接続はインターネットプロトコルを使用する1つ以上の通信チャネル、例えば、インターネットを介して、1つ以上のワイドエリアネットワーク(WAN)を介してもよい。上述したように、実行前計算(例えば、計画グラフのファミリーの生成)はロボット102または他のロボットとは別個のシステムによって実行することができ、一方、システム200がロボット102の物理的寸法の変化にリアルタイムで反応するように計画グラフを変更することができることが重要であるため、実行時計算は、ロボット102上にあるプロセッサ212上で実行することができる。
別段の記載がない限り、図2に示される様々なブロックの構造および動作は従来の設計のものであるか、または2017年6月9日出願の国際特許出願第PCT/US2017/036880号「自動車用車両および再構成可能な移動計画処理装置のための移動計画(MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS)」、2016年1月5日出願の国際特許出願第WO2016/122840「特殊なロボット運動計画ハードウェアとその作成および使用方法(SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME)」、および/または2018年1月12日出願の米国特許出願第62/616,783号「動体を有する環境における自動車の移動計画を容易にするための装置、方法および物品(APPARATUS, METHOD AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC OBJECTS)」に記載されており、それらの全体が参照により本明細書に組み込まれる。その結果、そのようなブロックは参照により本明細書に組み込まれる参考文献を考慮して、関連技術の当業者によって理解されるように、さらに詳細に説明される必要はない。
ロボット制御システム200は、1つまたは複数の処理ユニット212と、システムメモリ214と、計画グラフエッジ情報メモリ284と、システムメモリ214および計画グラフエッジ情報メモリ284を含む様々なシステム構成要素を処理ユニット212に結合するシステムバス216とを含み得る。いくつかの実施形態では、計画グラフエッジ情報メモリ284がシステムメモリ214であってもよく、またはその一部であってもよい。処理ユニットは、1つまたは複数の中央処理ユニット(CPU)212a、デジタル信号プロセッサ(DSP)212b、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などの任意の論理処理ユニットとすることができる。システムメモリ214は読取り専用メモリ(「ROM」)218およびランダム・アクセス・メモリ(「RAM」)220を含むことができ、計画グラフエッジ情報メモリ284はDRAMなどのRAMを含むことができ、ROM218の一部を形成することができる基本入出力システム(「BIOS」)222は、起動中などにロボット制御システム200内の要素間で情報を転送するのを助ける基本ルーチンを含む。
ロボット制御システム200は例えば、ハードディスクから読み書きするためのハードディスクドライブ、リムーバブルフラッシュメモリデバイスから読み書きするためのフラッシュメモリドライブ、リムーバブル光ディスクから読み書きするための光ディスクドライブ、または磁気ディスクから読み書きするための磁気ディスクドライブとすることができるディスクドライブ224を含み得る。ロボット制御システム200はまた、様々な異なる実施形態において、そのようなディスクドライブの任意の組み合わせを含んでもよい。ディスクドライブ224は、システムバス216を介して処理ユニット212と通信することができる。ディスクドライブ224は当業者に知られているように、そのようなドライブとシステムバス216との間に結合されたインターフェースまたはコントローラ(図示せず)を含み得る。ディスクドライブ224およびその関連するコンピュータ可読媒体226は、コンピュータ可読命令、データ構造、プログラムモジュール、およびロボット制御システム200のための他のデータの不揮発性記憶装置を提供する。当業者は、WORMドライブ、RAIDドライブ、磁気カセット、デジタルビデオディスク(「DVD」)、ベルヌーイカートリッジ、RAM、ROM、スマートカードなど、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体を使用することができることを理解するであろう。
プログラムモジュールは、オペレーティングシステム236、1つ以上のアプリケーションプログラム238、他のプログラムまたはモジュール240、プログラムデータ242などのシステムメモリ214に記憶することができる。アプリケーションプログラム238はプロセッサ212に、計画グラフのエッジに関連するロボット掃引体積の1つまたは複数の離散化された表現を生成すること、ロボット掃引体積の離散化された表現を生成するために、いくつかの離散化のうちのどれを使用するかを決定すること、ロボットが動作する環境100の離散化された表現を生成すること環境100における障害物を含む、複数の離散化された表現を生成するために使用すること、複数の計画グラフのうちのどれを使用するかを決定すること、決定された複数の計画グラフおよびエッジ情報のそれぞれのセットを記憶すること、計画グラフのノードによって表される状態の間を遷移する際にロボットの少なくとも一部によって掃引される体積を表す情報を生成すること、計画グラフのエッジに関する衝突評価を実行すること、計画グラフから1つまたは複数の最適化された結果を特定すること、計画グラフのエッジに関連する掃引体積の離散化された表現とロボット102が動作する環境100内の障害物の離散化された表現との間の衝突を検査すること、最適化がロボットのための衝突のない経路を生成するかどうかを決定すること、およびロボットのためのロボットのモーションプラニングを実施することのうちの1つまたは複数を実行させる命令を含み得る。アプリケーションプログラム238は本明細書および参照により本明細書に組み込まれる参考文献に記載されるように、プロセッサ212に(センサ282を介して)知覚、計画グラフ構築、衝突検出、および経路探索の他の動作を実行させる、1つまたは複数の機械可読命令セットをさらに含み得る。
アプリケーションプログラム238はさらに、プロセッサ212に、ロボット102が異なる寸法を有するときに対応する状態間の遷移においてロボット102によって掃引される異なる体積を表す計画グラフエッジ情報のそれぞれのセットを生成させ、計画グラフエッジ情報のそれぞれのセットに対応する計画グラフエッジ情報メモリ284に複数の計画グラフを記憶させる、1つまたは複数の機械可読命令セットを含み得る。
アプリケーションプログラム238はさらに、ロボット102が動作する環境100の第1の離散化表現について、環境メモリ294に環境100の第1の離散化表現の少なくとも一部を供給及び格納し、計画グラフの各エッジについて、計画グラフエッジ情報メモリ284にエッジ情報のそれぞれのセットを提供及び格納し、対応する遷移がロボット102の少なくとも一部と、環境100内の障害物A112および障害物B104などの1つまたは複数の障害物の少なくとも一部との間の衝突をもたらすことになる計画グラフのエッジのいずれかを特定する、1つまたは複数の機械可読命令セットをプロセッサ212に含ませることができる。
「環境」という用語は本例では障害物を含むロボットの現在の作業空間を指すために使用される。「タスク」という用語が本例ではロボット102がその環境内の障害物と衝突することなく、位置Aから位置Bに到達しなければならない(おそらく、何かを把持または落とす)ロボットタスクを指すために使用される。「シナリオ」という用語は本例では環境/タスクの対のクラスを指すために使用される。例えば、シナリオは「三脚テーブルを有する所与の範囲内のサイズおよび形状を有するx障害物とy障害物との間の環境内のピック・アンド・プレースタスク」とすることができる。このような基準に適合する多くの異なるタスク/環境の対が、目標の位置、障害物のサイズおよび形状に応じて存在し得る。システム200は、ネットワークインターフェース260を介して通信ネットワークを介してリンクされる1つ以上の遠隔処理装置を含んでもよい。そのような1つまたは複数のリモート処理デバイスはシステム200にロボット102が様々な異なるシナリオのタスクおよび環境の対に対して動作する環境100の表現のそれぞれの離散化を生成させる、1つまたは複数の機械可読命令セットを実行することができる。例示的な実施形態では、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含む。それぞれの離散化のボクセルは、それぞれの離散化においてサイズおよび形状のうちの少なくとも1つにおいて非均一であってもよい。また、それぞれの離散化のボクセルの不均一性のそれぞれの分布は、互いに異なっていてもよい。具体的には離散化がそれぞれのボクセルのセットを含むことができ、それぞれの離散化のうちの少なくとも2つのボクセルはそれぞれの離散化においてサイズおよび形状のうちの少なくとも1つにおいて不均一であり、それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布は互いに異なる。アプリケーションプログラム238はプロセッサ212にロボットが動作する環境100の表現の生成されたそれぞれの離散化の有効性を評価させ、特定のシナリオに対して最も有効であると評価される生成されたそれぞれの離散化を記憶させる、1つまたは複数の機械可読命令セットを含み得る。
アプリケーションプログラム238はロボット102が実行するタスクと、ロボットが動作する環境100とのペアを分類する特定されたシナリオに基づいて、プロセッサ212に、ロボット102の1つの状態とロボット102の別の状態との間で遷移するときにロボット102が通過するそれぞれの領域を表すいくつかの掃引体積を生成するために、いくつかの離散化のうちのどれを使用するかを決定させ、計画グラフ内の複数のエッジのそれぞれについて、決定された離散化を使用してエッジのそれぞれの掃引体積を決定させる、1つまたは複数の機械可読命令セットをさらに含み得る。アプリケーションプログラム238はさらに、プロセッサ212に、特定されたシナリオに対して最も有効であると評価される、ロボット102が動作することになる環境100の表現の決定された掃引体積のそれぞれの離散化を記憶させる、1つまたは複数の機械可読命令セットを含み得る。
アプリケーションプログラム238はさらに、ロボットが動作する環境100とロボット102が実行するタスクの対を分類する特定されたシナリオとに少なくとも部分的に基づいて、プロセッサ212に、環境100の離散化された表現を生成するためにいくつかの離散化のうちのどれを使用すべきかを決定させる、1つまたは複数の機械可読命令セットを含み得る。アプリケーションプログラム238はさらに、プロセッサ212に、環境100を感知する1つまたは複数のセンサ282によって生成されたセンサ情報を受信し、判定された離散化を使用して環境内に障害物がある場合にはそれを含む環境の離散化表現を生成させる1つまたは複数の機械可読命令セットを含み得る。決定された離散化の複数のボクセルはそれぞれの離散化内でサイズおよび形状のうちの少なくとも1つについて不均一であってもよく、決定された離散化のボクセルの不均一性のそれぞれの分布はいくつかの離散化のうちの別の1つのボクセルの不均一性の分布と異なってもよい。
アプリケーションプログラム238はさらに、プロセッサ212に、ロボットが動作する環境における計画グラフのエッジと任意の障害物との間の複数の計画グラフについての衝突検査を実行させる、1つまたは複数の機械可読命令セットを含み得る。プロセッサ212は各計画グラフに対してこのような衝突検査を実行し、それに応じて計画グラフを一時的に更新し、最適化を実行し、更新された計画グラフからの最適化された結果が満足条件を満たすかどうか(もしあれば)を判定することができる。満足条件が満たされない場合、プロセッサ212は次の計画グラフに移動し、同じ動作を実行してもよい。満足条件が満たされる計画グラフが見つかると、プロセッサ212は、満足条件を満たす計画グラフからの最適化された結果のうちの1つによって特定される遷移をロボット102に適用する。
アプリケーションプログラム238はさらに、プロセッサ212に、図6~図10に示される方法を含むが、これに限定されない、本明細書に記載される様々な他の方法を実行させる、1つまたは複数の機械可読命令セットを含み得る。
様々な実施形態では上述の動作のうちの1つまたは複数がシステム200の1つまたは複数のリモート処理デバイスによって実行することができ、これらのデバイスはネットワークインターフェース260を介して通信ネットワークを介して、またはロボット102上に配置された1つまたは複数のプロセッサ212によってリンクされる。
図2にはシステムメモリ214に記憶されるように示されているが、オペレーティングシステム236、アプリケーションプログラム238、他のプログラム/モジュール240、およびプログラムデータ242はディスクドライブ224の関連するコンピュータ読み取り可能媒体226上に記憶することができる。
プロセッサ212は、1つまたは複数の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などの任意の論理処理装置とすることができる。商業的に利用可能なコンピュータシステムの非限定的な例としては米国インテルOBCorporationによって提供されるマイクロプロセッサのCeleron、Core 2、Itanium、およびXeonファミリー、米国アドバンストマイクロデバイスによって提供されるK8、K10、Bulldozer、およびBobcatシリーズマイクロプロセッサ、米国アップルコンピュータによって提供されるA5、A6、およびA7シリーズマイクロプロセッサ、米国Qualcomm、Inc.によって提供されるSnapdragonシリーズマイクロプロセッサ、米国Oracle Corp.によって提供されるSPARCシリーズマイクロプロセッサが挙げられるが、これらに限定されない。別途記載されない限り、図2に示される種々のブロックの構成および動作は、従来の設計のものである。その結果、そのようなブロックは当業者によって理解されるように、本明細書でさらに詳細に説明される必要はない。
図3はロボット102が動作することができる図1の環境100の概略図であり、図示された一実施形態に従い、3D空間内の1つの位置から3D空間内の別の位置へと移行するロボット102と、環境100内の3D空間内の1つの位置から別の位置へと移行するロボットの付属肢によって掃引された体積の表現を示す。
図3に示す例では、ロボット102が2つの付属肢、アーム106およびアーム108を有するものとして示されている。一例ではロボットが図3に示すように、アーム106を第1の位置から第2の位置に移動させることによって、3D空間内の位置を変化させることができる。図3に示すように、アーム106を第1の位置から第2の位置に移動させることによって、3D空間内のある位置と3D空間内の別の位置との間の移行を行う場合、ロボット102によって掃引される3D空間内の容積は領域302によって表される。しかし、図3に示すように、このような遷移は、ロボットアーム106を領域304内の障害物A112に衝突させることになる。
したがって、衝突の回避を容易にするために、設計時(実行時の前)に、1つまたは複数の計画グラフがシステム200によって生成され、1つの状態から別の状態への様々な遷移を行うときに、ロボット102によってどの領域が占有されるかが判定される。例えば、ロボット102のための計画グラフのエッジは、領域302に対応するロボット102によって掃引された3D空間内の体積に対応するいくつかの数のボクセル(またはボックス)を有する。計画グラフ内の対応する遷移を行うときに領域302に対応するロボット102によって掃引されたボクセルまたはボックスは、計画グラフエッジ情報メモリ284などの、計画グラフに専用のオフチップメモリ内の計画グラフのエッジに対応するものとして記憶することができる。次に、実行時に、障害物A112(および障害物B104も含む)を含む環境100を表す障害物ボクセル(またはボックス)は、占有グリッドの形でプロセッサ212aにストリーミングされ、オンチップ環境メモリ294に記憶される。システム200は(占有グリッドに基づいて)どのボクセルが占有されているかを決定し、現在占有されているボクセルと衝突する動きを使用しないことを決定する。特に、エッジの掃引体積の一部を表すエッジボクセル(またはボックス)ごとに、計画グラフエッジ情報メモリ284からストリーミングされるとき、プロセッサは、占有グリッドに基づいて、環境メモリ294に記憶されている障害ボクセル(またはボックス)のいずれかと衝突するか否かを決定する。エッジボクセル(またはボックス)が障害物ボクセル(またはボックス)のいずれかと衝突する場合、システム200は計画グラフ内のそのエッジとの衝突を判定し、計画グラフ内のそのエッジに関連するロボット102の動きを使用しないと判定する。
例えば、図3に示すロボットアーム106の運動を実行する前に、システム200は、計画グラフエッジメモリ284から適用可能な計画グラフの全てのエッジのエッジボクセル(又はボックス)を流し始める。各エッジについて、プロセッサ212aが各エッジ・ボクセル(又はボックス)に出会うと、任意のエッジ・ボクセル(又はボックス)が環境メモリ294に記憶された(障害物A112のためのものを含む)障害ボクセル(又はボックス)のいずれかと衝突するかどうかをチェックする。図3に示すように、環境メモリ294に記憶された障害物A112の障害物ボクセル(またはボックス)は占有グリッドに従って同じ領域を占有するので、領域304内の任意のエッジボクセル(またはボックス)はこのような衝突を生じる。プロセッサ212aは障害物ボクセル(又はボックス)のいずれかと衝突するエッジボクセル(又はボックス)に出会うとすぐに、その後、プロセッサ212aは、計画グラフのそのエッジを使用しないことを決定する。計画グラフのエッジの処理が終了すると、プロセッサ212aは、環境メモリ294に記憶された障害物ボクセル(またはボックス)と衝突すると判定されなかった残りのエッジを使用して、ロボットを初期位置から目標位置に移動させる計画グラフ内の経路を判定する。
システム200はまた、各計画グラフによって表される掃引体積をどのように表すか、ならびに環境100内の障害物をどのように表すかに関する決定を行うことができる。そのような決定は例えば、掃引体積をボクセルまたはボックスで表すかどうか、使用するボクセルまたはボックスの形状およびサイズ、使用するボクセルまたはボックスのサイズおよび/または形状が不均一である離散化を使用するかどうか、およびどのシナリオでボクセルまたはボックスの異なる形状および/またはサイズを使用するかなど、どのように離散化を実行すべきかに関してプロセッサ212aによって行われる決定を含み得る。様々な実施形態では計画グラフのそれぞれによって表される掃引体積をどのように表すか、ならびに環境100内の障害物をどのように表すかに関する決定を行うための上述の1つまたは複数のそのような動作はネットワークインターフェース260を介して通信ネットワークを介してリンクされるシステム200の1つまたは複数のリモート処理デバイスによって、またはロボット102上に位置する1つまたは複数のプロセッサ212によって実行され得る。
特に、システム200は、ロボット102の作業空間をボクセルに離散化することを決定することができる(これは後でボックスにグループ化することができる)。1つの実装例は、3次元の各々において均一な量子化を実行する。しかしながら、ロボットの作業空間の異なる部分においてより小さい/より大きい非立方体形状のボクセルおよび/またはボクセルを有することが有利であり得る。例えば、一実施形態はロボット102の正面の空間においてより小さなボクセル(より細かい解像度)を使用し、ロボットが到達する最遠端のところでより大きなボクセル(より粗い解像度)を使用する。したがって、様々な実施形態は、非均一量子化および/または非立方体形状ボクセルを使用することができる。本開示はまた、システム200がボクセルサイズおよび/または形状をどのように選択するかについてのアルゴリズムを提供する。
一実施形態では、実行時間の前に実行のためのトレーニングアルゴリズム(訓練アルゴリズム)を使用して、様々な異なるシナリオに対してどのボクセルサイズおよび形状を使用するのがよいかを決定する。システム200は、1つまたは複数のシナリオからのタスク/環境ペアの所与のまたは生成された大きなセットを使用することによってトレーニングされる。次いで、システム200は、トレーニングサンプルの大きなセットにわたって最も効果的であると評価される離散化を選択する。
例えば、任意の所与の環境/タスク対に対して、最適な離散化(または等しく最適な複数の離散化)が存在する。システム200はT個の環境/タスクペア(ここで、Tは多数である)をテスト/トレーニングし、次いで、それぞれについて最適な離散化を記録し得る。これは多くの異なる離散化をもたらす場合があり、その各々は1つのみまたは少数の環境/タスク対に対して最適である。すべてのT個の環境/タスク対をテストした後、システムは、サンプルのセット全体にわたって最も有効であると評価される離散化を選択する。このアプローチはまた、取り扱いにくいあらゆる可能な環境/タスク対に対してあらゆる可能な離散化を試みることを含む。
上記の問題を克服するために、システム200はシステム200が有限数の可能な離散化Gを考慮することを除いて、上記で説明したようなトレーニングを実行する。各環境/タスク対に対して、システムは、提供されたG個の離散化のうちのどれが最も効果的であると評価されるかを記録する。全てのT個の環境/タスク対を処理した後、システム200は、最も多くの環境/タスク対において最も効果的であると評価される離散化を選択する。
一例として、ロボット102は、その前方の空間のボックスに面していてもよい。システムは6ビットが各次元における位置を記述するために使用されるように、スペースを離散化することを決定してもよい(すなわち、各軸上に2の位置があり得る)。これにより、それぞれが一意の18ビットIDを持つ218のボクセルが生成される。設計時に、システム200はあらゆるエッジの動きについて掃引体積を事前計算し、それをその掃引体積内のボクセルIDの集合として記録する。掃引体積がボクセルと部分的に交差する場合であっても、掃引体積は、その掃引体積内のボクセルIDの集合に含まれる。これが、より細かい解像度を使用することがより良い理由である。次に、実行時に、センサ282はプロセッサ212aに、ロボット102の前に何があるかを知らせるが、予め計算された掃引体積を表すボクセルよりはるかに細かい粒度であり、したがって、システム200はセンサ入力を処理し、どのボクセルが現在占有されているかをプロセッサ212aに通信する。いくつかの実施形態ではプロセッサ212aがセンサ入力を処理し、他の実施形態ではセンサ入力を処理してプロセッサ212aに通信するセンサ282のプロセッサなどの別個のプロセッサがある。プロセッサ212aは環境メモリ294に記憶されている情報に基づいて現在環境にあるボクセルまたはボックスを、計画グラフエッジ情報メモリ284に記憶されている計画グラフエッジ情報の各エッジに対して記載されているボクセルまたはボックスと比較し、現在どのエッジが衝突しているかを決定する。そのような実施形態では、比較を可能にするために、実行時と同じ離散化が設計時に使用されることが重要である。
システム200が非均一離散化を使用することを選択するとき、システム200は18ビットのボクセルIDおよび218ボクセルを依然として使用してもよいが、ボクセルはキューブである必要はない(またはそれらは同じサイズでないキューブであってもよい)。この場合も、この実施形態では、システムが実行時と同じ離散化を設計時に使用することが重要である。非均一離散化を使用する場合、システム200は設計時および実行時に使用され、最も効果的であると評価されるボクセルサイズおよび形状をシステムが選択するように、上述のようなトレーニングを使用して、各ボクセルのサイズおよび形状が何であるかを選択する。そのようなトレーニングで使用される評価基準は解決することができるタスクの割合(例えば、システム200が、ロボット102の目標を達成するための何らかの衝突のない経路を見出すことができる)および見出される経路の質に関する基準を含んでもよい。
図4Aは1つの例示的実施形態に従った図1および図3のロボット102のための例示的ロボットの計画グラフ400のエッジを含むモーションプラニンググラフ400であり、エッジについて、ロボット102と環境100内の1つ以上の障害物との間の衝突をもたらすであろう対応する遷移が決定されている。図4Bは1つの例示としての実施形態に従った例示としてのロボットのモーションプラニンググラフ400であり、対応する遷移がロボット102と環境100内の1つ以上の障害物との間の衝突をもたらすであろうと決定された計画グラフ400のエッジが除去されている。計画グラフ400の各ノードはロボット102の状態を表し、計画グラフ400の各エッジは、ロボット102のある状態から別の状態への遷移を表す。例えば、エッジ410aは、ノード408aによって表されるロボット102の状態とノード408bによって表されるロボット102の状態との間の遷移を表す。エッジ410iは、ノード408cによって表されるロボット102の状態とノード408dによって表されるロボット102の状態との間の遷移を表す。
ロボット102のための計画グラフ400の各エッジは計画グラフ400において、そのエッジによって表されるある状態から別の状態への遷移を行うときに、ロボット102によって掃引される3D空間内の体積に対応するいくつかの数のボクセル(またはボックス)を有する。システム200はロボット102の寸法の変化に対応するために、異なる計画グラフを交換することができるように、このような情報は、オフチップ計画グラフエッジ情報メモリ284に計画グラフエッジ情報として記憶され得る。実行時に現在の環境を表すセンサ282から受け取った情報を使用して、システム200はどのボクセル(またはボックス)が現在占有されているかを判定し、システム200は、現在占有されているボクセル(またはボックス)と衝突する動きを使用しないと判定する。
いくつかの実施形態では、システムが現在の環境(およびその中の障害物)を表すセンサ282から受信され、オンチップ環境メモリ294に記憶された情報を、計画グラフエッジ情報メモリ284に記憶された計画グラフエッジ情報と実行時に比較することによって、占有ボクセル(またはボックス)と衝突するいかなる動きも使用しないことを決定する。この比較に基づいて、システム200は、どの計画グラフエッジがロボット102と環境100内の1つまたは複数の障害物との間の衝突をもたらす遷移(したがって、どの対応する動き)を表すかを決定する。一例として、図4Aは、エッジ410b、410c、410d、410e、410f、410g、410h、410i、410j、410k、および410lがロボット102と環境100内の1つまたは複数の障害物との間の衝突をもたらす遷移(したがって、対応する動き)を表すと判定されたことを示す。
例えば、ロボット102がノード408aによって表される状態からノード408dによって表される状態に移動するという目標を達成するために、ロボット102は、ロボット102と環境100内の1つまたは複数の障害物との間の衝突をもたらす遷移を表すと判定されたエッジ410b、410c、410d、410e、410f、410g、410h、410i、410j、410kおよび410lによって表される遷移を回避しなければならない。したがって、図4Bは、環境100内の1つまたは複数の障害物と衝突することなく、ノード408aによって表される状態からノード408dによって表される状態に移動するという目標を達成するためにロボット102が従うことができる、システム200によって特定される計画グラフ400内の、そのようなエッジが除去された計画グラフおよび潜在的経路416を示す。
図5は、1つの例示としての実施形態に従った、特定の状況に従った異なる計画グラフのエッジ情報を提供することによって、ロボットのモーションプラニングを容易にするためのロボット制御システム200における動作の方法500を示すフロー図である。ロボット制御システム200における動作の方法500は特定の状況に応じて異なる計画グラフのエッジ情報を提供することによって、ロボットのモーションプラニングを容易にするために、502で開始する。
504において、環境内で動作するであろうロボット102に対して、システム200は、複数の計画グラフを決定する。各計画グラフはそれぞれ、複数のエッジによって接続された複数のノードを含み、各ノードは、ロボット102のそれぞれの状態を特徴付ける変数を、暗黙的または明示的に表す。各エッジは、ロボット102のそれぞれの対の状態間の遷移を表す。それぞれの状態対は、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノード対のそれぞれの1つによって表される。
506において、各計画グラフのエッジのうちの少なくとも2つ以上について、システム200はそれぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、ロボット102の少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成する。少なくとも1つの実施形態では、システム200が実行時前にそれぞれのエッジ情報のセットを生成する。
508で、システム200は、複数の計画グラフおよびエッジ情報のセットを少なくとも1つの非一時的プロセッサ可読記憶装置に記憶する。
510において、第1の物理的寸法のセットを有するロボット102の少なくとも一部に基づいて、システム200は、計画グラフのうちの第1のもののエッジ情報のセットを少なくとも1つのプロセッサに提供する。
512において、第2の時間における第2のセットの物理的寸法を有するロボット102の少なくとも一部に基づいて、システム200は、計画グラフのうちの第2のもののエッジ情報の組(又は、セット)を少なくとも1つのプロセッサに提供する。第2の物理的寸法のセットにおける少なくとも1つの寸法は、第1のセットの寸法のうちの対応する1つと異なる。特定の状況に応じて異なる計画グラフのエッジ情報を提供することによってロボットのモーションプラニングを容易にするロボット制御システム200における動作の方法500は、514で終了する。
ロボット102は、ロボット102が動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有することができる。ロボット102はまた、第1の付属肢に取り付けられた第1のエンドエフェクタを有し得る。第1のエンドエフェクタは少なくとも第1のエンドエフェクタ配置と第2のエンドエフェクタ配置(例えば、把持している配置と把持していない配置)との間で移動するように選択的に動作可能である。システム200は、第1の付属肢に取り付けられた第1のエンドエフェクタが第1のエンドエフェクタ配置にあると判定することができる。例えば、エンドエフェクタは、把持されていない位置または開いた位置にあってもよい。これは、第1のエンドエフェクタ配置の一例である。把持位置にあるエンドエフェクタは、第2のエンドエフェクタ配置の一例である。第1の物理的寸法のセットは、第1のエンドエフェクタ配置における第1のエンドエフェクタの寸法のセットを表す。特に、第1の物理的寸法のセットは、エンドエフェクタが把握されていない位置にあるときのロボットの物理的寸法である。そのような場合、少なくとも1つのプロセッサに計画グラフのうちの第1のもののためのエッジ情報のセットを提供することは、第1の付属肢に取り付けられた第1のエンドエフェクタが第1のエンドエフェクタ配置にある(すなわち、把持されていない位置または開放位置にある)という決定に応答する。
また、システム200は、第1の付属肢に取り付けられた第1のエンドエフェクタが第2のエンドエフェクタ配置にあると判定することができる。例えば、エンドエフェクタは、把持位置または閉鎖位置にあってもよい。これは、第2のエンドエフェクタ配置の一例である。把持されていない又は開いた位置にあるエンドエフェクタは、第1のエンドエフェクタ配置の一例である。第1の付属肢が第2のエンドエフェクタ配置(すなわち、把持位置または閉鎖位置)にある場合、第2の物理的寸法のセットは、第2のエンドエフェクタ配置における第1のエンドエフェクタの寸法のセットを表す。特に、第1の物理的寸法のセットは、エンドエフェクタが把持位置にあるときのロボットの物理的寸法である。次いで、少なくとも1つのプロセッサに計画グラフのうちの第2のもののためのエッジ情報のセットを提供することは、第1の付属肢に取り付けられた第1のエンドエフェクタが第2のエンドエフェクタ配置にある(すなわち、把持されていない位置または開放位置にある)という決定に応答する。
いくつかの実施形態では、ロボット102がロボット102が動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、第1のエンドエフェクタが第1の付属肢に取り付けられる。第1のエンドエフェクタは、少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能である。把持している配置において第1のエンドエフェクタによって占められる容積のサイズまたは形状のうちの少なくとも1つは、把持していない配置において第1のエンドエフェクタによって占められる容積のサイズまたは形状のうちの少なくとも1つとは異なる。そのような場合、システム200は、第1の付属肢に取り付けられた第1のエンドエフェクタが把持していない配置にあると判定することができる。次いで、少なくとも1つのプロセッサに計画グラフのうちの第1のもののためのエッジ情報のセットを提供することは、第1の付属肢に取り付けられた第1のエンドエフェクタが把持していない配置にあるという決定に応答する。
図6は図示された一実施形態によるロボット制御システム200の動作方法600を示す流れ図であり、対応する遷移が衝突をもたらすであろう計画グラフのエッジを特定することによって、ロボットのモーションプラニングを容易し、この計画グラフは、その各々がロボットの物理的寸法の異なるセットに関連付けられたオフチップメモリに記憶された複数の計画グラフのうちの1つである。対応する遷移が衝突をもたらすであろう計画グラフのエッジを602で特定することによってロボットのモーションプラニングを容易にするロボット制御システム200における動作方法600は602で開始する。
604において、少なくともロボット102が動作する環境の第1の離散化表現に対して、システム200は、環境の第1の離散化表現の少なくとも一部を少なくとも1つのプロセッサに供給する。環境は、1つ以上の障害物によって占有される。
606において、第1の計画グラフの各エッジに対して、システム200は、少なくとも1つのプロセッサにそれぞれのエッジ情報のセットを提供する。第1の計画グラフは、プロセッサに対して相対的なオフチップメモリに記憶された複数の計画グラフの1つである。複数の計画グラフの各計画グラフは、第1ロボットの物理的次元の異なるセットに関連付けられる。エッジ情報のそれぞれのセットはロボット102の一対の状態の間を遷移する際に、ロボット102の少なくとも一部によって掃引される体積を表す。ロボット102の一対の状態は、第1の計画グラフの一対のノードのそれぞれによって表される。それぞれのノード対のノードは第1の計画グラフのそれぞれのエッジによって結合され、それぞれのエッジはロボット102のそれぞれの状態対の間の遷移を表す。
608において、システム200は、対応する遷移がロボット102の少なくとも一部と、環境内の1つ以上の障害物のうちの少なくとも1つの少なくとも一部との間の衝突をもたらすであろう第1の計画グラフのエッジのうちのいずれかを特定する。対応する遷移が610で衝突をもたらすであろう計画グラフのエッジを特定することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法600は610で終了する。
図7は、1つの例示としての実施形態に従った、ロボット102が動作する環境の表現の生成された不均一な離散化の有効性を評価することによって、ロボットのモーションプラニングを容易にするためのロボット制御システム200における動作の方法700を示すフロー図である。ロボット102が動作する環境の表現の生成された非均一な離散化の有効性を評価することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作方法700は、702で開始する。
704において、複数の反復のそれぞれに対して、システム200は、ロボット102が動作する環境の表現のそれぞれの離散化を生成する。システム200は、少なくとも複数のタスクと環境の組のセットを含む第1のシナリオと、少なくとも第1のシナリオのタスクと環境の組の各々に対して、これを実行する。それぞれの離散化のうちの少なくとも2つは、ボクセルのそれぞれのセットを含む。それぞれの離散化のうちの少なくとも2つのボクセルは、それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて非均一である。それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布もまた、互いに異なる。
706において、システム200は、生成されたロボットが動作する環境の表現のそれぞれの離散化の有効性を評価する。システム200は、少なくとも複数のタスクと環境の組のセットを含む第1のシナリオと、少なくとも第1のシナリオのタスクと環境の組の各々に対して、これを実行する。
708において、システムは、処理すべきタスクおよび環境のさらなるペアがあるか否かを決定する。システム200が現在のシナリオについて処理すべきタスクおよび環境のさらなるペアが存在すると判定した場合、方法700は704に戻り、シナリオに含まれるタスクおよび環境のペアのセットについてそれぞれの離散化を生成し続け、706でそれらの有効性を評価する。システム200が、現在のシナリオについて処理すべきタスクおよび環境のさらなる対が存在しないと判定した場合、方法700は710に続く。
710において、システム200は、少なくとも第1のシナリオに対して最も有効であると評価された、生成されたロボットが動作する環境の表現の少なくともそれぞれの離散化を、少なくとも1つの非一時的プロセッサ可読媒体に格納する。
712で、システム200は、処理すべきさらなるシナリオがあるかどうかを判定する。システム200が、処理すべきさらなるシナリオがあると判定した場合、方法700は704に戻り、706において、次のシナリオに含まれるタスクおよび環境のペアのセットに関するそれぞれの離散化を生成し続け、それらの有効性を評価する。システム200が処理すべきさらなるシナリオがないと判断した場合、ロボット102が動作する環境の表現の生成された非均一離散化の有効性を評価することによってロボットのモーションプラニングを容易化するためのロボット制御システム200における動作方法700は、714で終了する。いくつかの実施形態では、複数のシナリオに関連付けられた1つの計画グラフがあってもよい。そのような実施形態では、システム200がそのような1つの計画グラフに関連付けられたタスクおよび環境のペアのセットについてのそれぞれの離散化を生成することができる。図8は、1つの例示としての実施形態に従った、ロボット102が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定することによってロボットのモーションプラニングを容易にするためのロボット制御システム200における動作の方法800を示すフロー図である。ロボット102が通過する各領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちの何れを使用すべきかを決定することによってロボットのモーションプラニングを容易にするロボット制御システム200における動作の方法800は802で開始する。
804において、少なくとも部分的には、ロボット102が実行するであろうタスクの対を分類する特定されたシナリオと、ロボットが動作するであろう環境とに基づいて、システム200はロボット102の1つの状態とロボット102の別の状態との間を遷移する際に、ロボット102の少なくとも一部が通過するであろうそれぞれの領域を表すいくつかの掃引体積を生成するために使用するいくつかの離散化のうちのどれを使用するかを決定する。この決定は、特定されたシナリオに基づいて少なくとも2つの離散化の間で選択することを含み得る。そのような場合、それぞれの離散化のうちの少なくとも2つのボクセルは、それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて非均一である。また、それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布は互いに異なる。
806において、計画グラフ内の複数のエッジの各々に対して、システム200は、決定された離散化を用いてエッジのそれぞれの掃引体積を決定する。計画グラフは、複数のノードおよび複数のエッジを含む。各ノードは、ロボットの複数の状態のそれぞれ1つを表す。各エッジは一対のノードを結合し、エッジによって結合されたそれぞれのノードによって表される状態間のロボット102による遷移を表す。
808において、システム200は少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも特定されたシナリオに対して最も有効であると評価される、ロボット102が動作することになる環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを格納する。ロボット102が通過するそれぞれの領域を表すいくつかの(又は、多数の)掃引体積を生成するために使用されるいくつかの離散化のどれを使用するかを決定することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法800は810で終了する。いくつかの実施形態では、計画グラフが複数のシナリオに関連付けられてもよい。図9は、1つの例示としての実施形態に従った、決定された離散化を用いてロボット102が動作する環境の離散化された表現を生成することによってロボットのモーションプラニングを容易にするためのロボット制御システム200における動作の方法900を示すフロー図である。決定された離散化を用いてロボット102が動作する環境の離散化された表現を生成することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法900は902で開始する
904において、少なくとも部分的にはロボット102が実行するであろうタスクの対を分類する特定されたシナリオと、ロボット102が動作する環境とに基づいて、システム200は環境(環境内に障害物が存在する場合にはその障害物を含む)の離散化された表現を生成するためのいくつかの離散化のうちのどれを使用するかを決定する。
906において、システム200は、環境を感知する1つまたは複数のセンサ282によって生成されたセンサ情報を受信する。センサ情報は、環境内に障害物が存在する場合にはその障害物を含む環境を表す。
908で、システム200は、決定された離散化を使用して、環境内に障害物がある場合にはそれを含む環境の離散化表現を生成する。決定された離散化の複数のボクセルは、それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて非均一である。決定された離散化のボクセルの不均一性のそれぞれの分布は、いくつかの離散化のうちの別の1つのボクセルの分布とは異なる。システムは、掃引体積の離散化表現を生成するために使用されるボクセルサイズおよび形状の分布に一致(又は、適合)するボクセルサイズおよび形状の分布を使用して、環境の離散化表現を生成する。ロボット102が動作する環境の離散化された表現を生成することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法900は、910で終了する。
図10は、1つの例示としての実施形態に従った、計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによって、ロボットのモーションプラニングを容易化するためのロボット制御システム200における動作の方法1000を示すフロー図である。方法1000は、複数の計画グラフを使用する。各計画グラフは、それぞれ、複数のエッジによって接続された複数のノードを含む。各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは、第1のロボットの状態のそれぞれの対の間の遷移を表す。それぞれの状態のペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される。計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法1000は1002で開始する。
1004において、複数の計画グラフの第1の計画グラフ、および第1の計画グラフの複数のエッジのそれぞれに対して、システム200は、エッジに関連する掃引された体積の離散化された表現と、ロボットが動作する環境内の任意の障害物の離散化された表現との間の衝突についての衝突検査を実行する。
1006において、システム200は、衝突検査に基づいて第1の計画グラフを更新する。
1008において、システム200は更新された第1の計画グラフの最適化を実行して、更新された第1の計画グラフから、もしあれば、1つ以上の最適化された結果を特定する。
1010において、システム200は、更新された第1の計画グラフからの1つまたは複数の最適化された結果がもしあれば、満足条件を満たすかどうかを判定する。
1012において、システム200が、更新された第1の計画グラフからの1つまたは複数の最適化された結果(もしあれば)が満足条件を満たさなかったと判定した場合、方法1000は1014に続く。更新された第1の計画グラフからの1つまたは複数の最適化された結果(もしあれば)が満足条件を満たすとシステム200が判定した場合、方法1000は1020で終了する。更新された第1の計画グラフからの1つ以上の最適化された結果(もしあれば)が満足条件を満たしていると判断することに応答して、システム200は更新された第1の計画グラフからの1つ以上の最適化された結果のうちの1つによって特定される遷移をロボット102に適用することができる(例えば、ロボットを移動させる)。
1014において、更新された第1の計画グラフからの1つまたは複数の最適化された結果(もしあれば)が満足条件を満たさなかったとシステム200が判定したことに応答して、システム200は、第2の計画グラフの複数のエッジのそれぞれについて、エッジに関連付けられた掃引体積の離散化された表現と、ロボット102が動作する環境内の任意の障害物の離散化された表現との間の衝突検査を実行する。
1016において、システム200は、衝突検査に基づいて第2の計画グラフを更新する。
1018において、システム200は更新された第2の計画グラフの最適化を実行して、更新された第2の計画グラフから、もしあれば、1つ以上の最適化された結果を特定する。計画グラフの最適化された結果が満足条件を満たすかどうかを判定することによってロボットのモーションプラニングを容易化するロボット制御システム200における動作の方法1000は1020で終了する。
システム200は、更新された第2の計画グラフからの1つまたは複数の最適化された結果がもしあれば、満足条件を満たすかどうかを判定することもできる。1つ以上の最適化された結果がもしあれば、更新された第2の計画グラフから満足条件を満たすと判断することに応じて、システム200は更新された第2の計画グラフからの1つ以上の最適化された結果のうちの1つによって特定される遷移をロボット102に適用することができる(例えば、ロボットを動かす)。
さらに、更新された第2の計画グラフからの1つまたは複数の最適化された結果(もしあれば)が満足条件を満たさないと判定することに応答して、システムは衝突検査を繰り返し、計画グラフを更新し、システムが満足条件を満たす計画グラフを特定するまで、後続の計画グラフに対して最適化を実行することができる。次に、システム200は、特定された計画グラフからの1つ以上の最適化された結果のうちの1つによって特定された遷移をロボット102に適用することができる。いくつかの実施形態では更新された計画グラフからの最適化された結果がそのようなプロセスにおいて満足条件を満たすかどうかを判定することは最適化が衝突のない経路を生成するかどうかを判定することを含み得る。このような無衝突経路は、環境内の全ての障害物との衝突を回避する経路である。
上記の詳細説明においては、ブロック図、模式図及び実施例を用いて、多様な装置及び/又は方法の実施形態について記載している。これらのブロックダイヤグラム、概略図及び実施例は1つまたは2つ以上の機能及び/または動作を含んでいるが、当業者には明らかなように、これらのブロックダイヤグラム、流れ図及び実施例におけるそれぞれの機能及び/または動作は個々に及び/または一括して、多様なハードウェア、ソフトウェア、ファームウェア、または事実上任意のこれらの組み合わせによって実装することができる。一実施形態では、本主題がブール回路、特定用途向け集積回路(ASIC)および/またはFPGAを介して実装され得る。しかしながら、本明細書に開示された実施形態は全体的にまたは部分的に、標準的な集積回路における様々な異なる実装において、1つまたは複数のコンピュータ上で実行される1つまたは複数のコンピュータプログラムとして(例えば、1つまたは複数のコンピュータシステム上で実行される1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ(例えば、マイクロプロセッサ)上で実行される1つまたは複数のプログラムとして、ファームウェアとして、またはそれらの事実上任意の組合せとして実装することができ、回路を設計すること、および/またはソフトウェアおよび/またはファームウェアのためのコードを書き込むことは、本開示に照らして当業者の技術の範囲内で十分にあることを、当業者は認識するであろう。
当業者は本明細書に記載された方法またはアルゴリズムの多くが、追加の動作を使用し、いくつかの動作を省略し、および/または指定された順序とは異なる順序で動作を実行し得ることを認識するであろう。
さらに、当業者は、本明細書で教示されるメカニズムが様々な形態でプログラム製品として配布されることが可能であり、例示的な実施形態が配布を実際に実行するために使用される信号搬送媒体の特定のタイプにかかわらず、等しく適用されることを理解するであろう。信号担持媒体の例にはハードディスクドライブ、CDROM、およびコンピュータメモリなどの記録可能タイプの媒体が含まれるが、これらに限定されない。
上記の種々の実施形態は、更なる実施形態を提供するように組み合わされることが可能である。本願と同じ譲受人に譲渡された米国特許出願公開、米国特許出願、外国特許、および本明細書に言及され、かつ/または「MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS(自律走行車のモーションプラニングと再構成可能なモーションプラニングプロセッサー)」という名称の平成29年6月9日に出願された国際特許出願第PCT/US2017/036880号、「SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME(特殊なロボット運動計画ハードウェアとその作成および使用方法)」という名称の国際特許出願公開第016/122840号、および米国仮特許出願第MOTION PLANNING OF A ROBOT STORING A DISCRETIZED ENVIRONMENT ON OR MORE PROCESSORS AND IMPROVED OPERATION OF SAME(離散化された環境を1つ以上のプロセッサに格納するロボットのモーションプラニングとその改善された操作)」という名称の2018年2月6日出願の米国特許出願番号第62/626,939は、その全体が参照により本明細書に組み込まれる。上記の詳細説明に照らして、上記の及び他の変形がそれらの実施形態に対して行われることが可能である。一般に、以下の特許請求の範囲において、使用される用語は特許請求の範囲を、明細書および特許請求の範囲に開示される特定の実施形態に限定するように解釈されるべきではなく、そのような特許請求の範囲が権利を有する均等物の全範囲とともに、すべての可能な実施形態を含むように解釈されるべきである。したがって、特許請求の範囲は、本開示によって限定されない。
下記は、本願の出願当初に記載の発明である。
<請求項1>
ロボット制御システムにおける動作方法であって、
環境内で動作する第1のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、
各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップと、
第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップを有し、
第2の物理的寸法のセットのうちの少なくとも1つの寸法が前記第1のセットの前記寸法のうちの対応する1つと相違する、方法。
<請求項2>
前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、前記第1のロボットは前記第1の付属肢に取り付けられた第1のエンドエフェクタを有し、前記第1のエンドエフェクタは、少なくとも第1のエンドエフェクタ配置と第2のエンドエフェクタ配置との間で移動するように選択的に動作可能であり、
前記方法は、
前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが第1のエンドエフェクタ配置にあることを決定するステップをさらに有し、
前記第1の物理的寸法のセットは前記第1のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、
少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第1のエンドエフェクタ配置にあることの決定に応答する、請求項1に記載の方法。
<請求項3>
前記第1の付属肢に取り付けられた第1のエンドエフェクタが第2のエンドエフェクタ配置にあると判定するステップをさらに有し、
前記第2の物理的寸法のセットは前記第2のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、
少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第2のエンドエフェクタ配置にあることの決定に応答する、請求項2に記載の方法。
<請求項4>
前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを有し、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは、前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、
前記方法は、
前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあるという決定に応答する、該ステップと、
前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあるという決定に応答する、該ステップ
をさらに有する、請求項1に記載の方法。
<請求項5>
前記第1のロボットは、前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、
前記方法は、
前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有すると決定するステップをさらに有し、
前記第1の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第1のエンドエフェクタの寸法のセットを表し、
少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有するという決定に応答する、請求項1に記載の方法。
<請求項6>
前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有すると決定するステップをさらに有し、
前記第2のエンドエフェクタが前記第1のエンドエフェクタとは少なくとも1つの形状またはサイズで相違し、
前記第2の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第2のエンドエフェクタの寸法のセットを表し、
少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップが、前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有するという決定に応答する、請求項5記載の方法。
<請求項7>
前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し(例えば、例えば、燃料の消費によって重量が変化し得るために速度が変化し、移動距離が変化し得る)、
前記方法は、
前記自律車両または半自律車両のうちの少なくとも1つが第1の物理的状態にあると判定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記自律車両または半自律車両のうちの少なくとも1つが前記第1の物理的状態にあるという決定に応答する、該ステップと、
前記自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあるという決定に応答する、該ステップ
をさらに有する、請求項1に記載の方法。
<請求項8>
少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を前記少なくとも1つのプロセッサの複数の回路の各々に適用して、どのエッジが前記ロボットが動作する環境内の障害物によって占有される単位体積と衝突するかを決定するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項9>
少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を、前記少なくとも1つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項10>
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを生成するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項11>
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を2つ以上のボクセルをカバーする体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項12>
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズム(直方体)で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項1~7のいずれかに記載の方法。
<請求項13>
それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズム(直方体)で表すそれぞれのエッジ情報のセットを生成するステップは、前記矩形プリズムの各々に対して、それぞれの矩形プリズムの体積を完全に規定する三次元座標のセットを格納するステップを含む、請求項12に記載の方法。
<請求項14>
複数の計画グラフを決定するステップと、それぞれのエッジ情報のセットを生成するステップが、実行前期間中に実行される、請求項1~7のいずれかに記載の方法。
<請求項15>
少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、実行時期間中に実行される、請求項1~7のいずれかに記載の方法。
<請求項16>
プロセッサベースのロボット制御システムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
環境内で動作する第1のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、
各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップと、
第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する、少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記第2の物理的寸法のセットのうちの少なくとも1つの寸法が前記第1のセットの前記寸法のうちの対応する1つと相違する、プロセッサベースのロボット制御システム。
<請求項17>
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項2から15の方法のいずれかを実行させる、請求項16に記載のプロセッサベースのシステム。
<請求項18>
ロボット制御システムにおける動作方法であって、
少なくとも第1のロボットが動作する1つ以上の障害物によって占有される環境の第1の離散化された表現に対して、少なくとも1つのプロセッサに前記環境の第1の離散化された表現の少なくとも一部を供給するステップと、
前記少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記複数の計画グラフの各計画グラフが前記第1のロボットの異なる物理的寸法のセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間を遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは、前記第1の計画グラフのノードのペアのそれぞれによって表され、
前記ノードのペアのそれぞれは前記第1の計画グラフのそれぞれのエッジによって接続され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表す、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と前記環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第1の計画グラフのエッジのいずれかを特定するステップを有する、方法。
<請求項19>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、前記エッジのうちの1つについての前記エッジ情報を、前記少なくとも1つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含む、請求項18に記載の方法。
<請求項20>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも1つのプロセッサの複数の回路のそれぞれに前記それぞれのエッジについての前記エッジ情報を並列に適用するステップを含む、請求項18に記載の方法。
<請求項21>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを適用するステップを含む、請求項18に記載の方法。
<請求項22>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を体積単位で表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ2つ以上のボクセルをカバーする、請求項18に記載の方法。
<請求項23>
前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ2つ以上のボクセルをカバーする、請求項18に記載の方法。
<請求項24>
前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すエッジ情報のそれぞれのセットを適用するステップが、前記矩形プリズムのそれぞれについて、それぞれの前記矩形プリズムの体積を完全に定義する3次元座標のペアを格納するステップを含む、請求項23に記載の方法。
<請求項25>
前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップであって、前記第2の配置は前記第1の配置とは相違する、該ステップと、
複数の前記計画グラフの第2の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に、前記第1のロボットの少なくとも一部により掃引される体積を表し、前記第1のロボットの状態のペアは前記第2の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのそれぞれのペアは前記第2の計画グラフのそれぞれのエッジによって結合され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、前記第2の計画グラフは第1の計画グラフと相違する、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第2の計画グラフの前記エッジのいずれかを特定するステップ
を有する、請求項18の方法。
<請求項26>
前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢を含み、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップが、第2のエンドエフェクタが第1のエンドエフェクタの代わりに前記第1の付属肢に取り付けられるかまたは取り付けられていることを決定するステップを含む、請求項25に記載の方法。
<請求項27>
前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを含み、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップを含む、請求項25に記載の方法。
<請求項28>
前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップは、前記第1のエンドエフェクタが把持していない配置と把持している配置との間で遷移しているかまたは遷移したことを決定するステップを含む、請求項27に記載の方法。
<請求項29>
前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し、
前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記自律車両または半自律車両のうちの少なくとも1つが、前記自律車両または半自律車両のうちの少なくとも1つの前記第1及び第2の配置間で遷移しているかまたは遷移したことを決定するステップを含む、請求項25に記載の方法。
<請求項30>
前記少なくとも1つのプロセッサに前記第1の計画グラフの各エッジのエッジ情報のそれぞれのセットを提供するステップは実行期間中に前記エッジ情報のそれぞれのセットを非一時的記憶装置から取り出すステップを含み、前記エッジ情報のそれぞれのセットは実行前期間中に前記非一時的記憶装置に記憶される、請求項18から29のいずれかに記載の方法。
<請求項31>
前記少なくとも1つのプロセッサはフィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つのプロセッサの複数の回路のそれぞれに前記エッジのうちの1つのためのエッジ情報を適用するステップを含む、請求項30に記載の方法。
<請求項32>
前記少なくとも1つのプロセッサ上のメモリに前記環境の第1の離散化された表現を記憶するステップと、
前記少なくとも1つのプロセッサ上のメモリに前記環境の第1の離散化された表現を記憶した後、前記少なくとも1つのプロセッサとは別個の記憶装置から前記少なくとも1つのプロセッサによって前記エッジ情報のセットを受信するステップ
を含む、請求項18記載の方法
<請求項33>
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
少なくとも第1のロボットが動作する1つまたは複数の障害物によって占有される環境の第1の離散化された表現に対して、環境の第1の離散化された表現の少なくとも一部を少なくとも1つのプロセッサに供給するステップと、
少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、エッジ情報のそれぞれのセットを少なくとも1つのプロセッサに提供するステップであって、前記複数の計画グラフのうちの第1の計画グラフの各エッジは第1のロボットの物理的寸法の異なるセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは前記第1の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのペアのそれぞれは前記第1の計画グラフのエッジのそれぞれにより結合され、前記エッジのそれぞれは前記第1のロボットの状態のペアのそれぞれの間の遷移を表す、該ステップと、
対応する遷移が前記ロボットの少なくとも一部と、前記環境内の1つまたは複数の障害物の少なくとも一部の間の衝突をもたらすことになる前記第1の計画グラフの前記エッジのいずれかを特定するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有するプロセッサベースのロボット制御システム。
<請求項34>
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項19から32の方法のいずれかを実行させる、請求項33に記載のプロセッサベースのシステム。
<請求項35>
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法であって、前記方法は、
タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、
前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、
複数の反復のそれぞれについて、
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、
少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップを有する、方法。
<請求項36>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの体積のそれぞれと比較して比較的小さい体積を有する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項37>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項38>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第3の体積が第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項39>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数の前記ボクセルが第3の体積を有し、前記第2の体積は前記第1の体積とは相違し、前記第3の体積が前記第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項40>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項41>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルの各々の形状が、前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルの各々の形状と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項42>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項43>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第3の形状が前記第2の形状と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項44>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状が前記第1の形状と相違し、前記第3の形状が前記第2の形状と相違する、第1の離散化を生成するステップを含む、請求項35に記載の方法。
<請求項45>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した複数の前記ボクセルが第3の形状を有し、前記第2の形状は前記第1の形状とは相違し、前記第3の形状は第2の形状とは相違する、第1の離散化を生成するステップを含む、請求項35に記載の方法。
<請求項46>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップは、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項47>
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップが、前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方とは相違し、形状のうちの少なくとも1つが非立方体である、第1のそれぞれの離散化を生成するステップを含む、請求項35に記載の方法。
<請求項48>
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突のない経路をもたらす可能性が最も高いかを決定するステップを含む、請求項35に記載の方法。
<請求項49>
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、衝突の確率が最も低い経路をもたらす可能性が最も高いかを決定するステップを含む、請求項35に記載の方法。
<請求項50>
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップは、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化のうちのどれが、最も低コストの衝突のない経路をもたらす可能性が最も高いかを決定するステップを含む、請求項35に記載の方法。
<請求項51>
少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップは、複数のシナリオの各々に対して少なくとも1つの生成されたそれぞれの離散化を、生成されたそれぞれの離散化のうちのどれが複数のシナリオの各々に対して使用されるべきかの指示と共に記憶するステップを含む、請求項35に記載の方法。
<請求項52>
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
タスクおよび環境の複数のペアのセットを含む少なくとも第1のシナリオについて、
前記少なくとも第1のシナリオのタスクおよび環境の前記ペアのそれぞれについて、
複数の反復のそれぞれについて、
少なくとも1つのプロセッサによってロボットが動作する環境の表現のそれぞれの離散化を生成するステップであって、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含み、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、該ステップと、
前記ロボットが動作する環境の表現の生成されたそれぞれの離散化の有効性を評価するステップと、
少なくとも1つの非一時的プロセッサ可読媒体に、少なくとも第1のシナリオに対して最も有効であると評価される、前記ロボットが動作する環境の表現の生成されたそれぞれの離散化を少なくとも記憶するステップ
を実行させる、プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する、少なくとも1つの非一時的プロセッサ可読媒体
を有するモーションプラニングを容易にするためのプロセッサベースのシステム。
<請求項53>
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項36から51の方法のいずれかを実行させる、請求項52に記載のプロセッサベースのシステム。
<請求項54>
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、
少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップ
を有するロボットのモーションプラニングを容易にするためのシステムにおける動作方法。
<請求項55>
いくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップは、特定されたシナリオに基づいて少なくとも2つの離散化の中から選択するステップを含み、それぞれの離散化のうちの少なくとも2つのボクセルはそれぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、それぞれの離散化のうちの少なくとも2つのボクセルの不均一性のそれぞれの分布は互いに相違する、請求項54に記載の方法。
<請求項56>
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の少なくとも1つの領域の複数の前記ボクセルのそれぞれが、前記ロボットの後方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの体積と比較して比較的小さな体積を有するような前記決定された離散化を用いて前記エッジのそれぞれの掃引された体積を決定するステップを含む、請求項54に記載の方法。
<請求項57>
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積とは異なるような前記決定された離散化を用いて、前記エッジのそれぞれの掃引された体積を決定するステップを含む、請求項54に記載の方法。
<請求項58>
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第3の体積が前記第2の体積とは異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含む、請求項54に記載の方法。
<請求項59>
決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップは、前記ロボットの前方の第1の領域内の複数の前記ボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の体積を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の体積を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と異なるような前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップを含む、請求項54に記載の方法。
<請求項60>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを有する、請求項54に記載の方法。
<請求項61>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における前記複数のボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の前記複数のボクセルの各々の形状と相違する、該ステップを含む、請求項54に記載の方法。
<請求項62>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記第2の体積が前記第1の体積と相違する、該ステップを有する、請求項54に記載の方法。
<請求項63>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第3の形状が前記第2の形状とは相違する、該ステップを含む、請求項54に記載の方法。
<請求項64>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数の前記ボクセルが第3の形状を有し、前記第2の形状が前記第1の形状とは相違し、前記第3の形状が前記第2の形状とは相違する、該ステップを含む、請求項54に記載の方法。
<請求項65>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを有する、請求項54に記載の方法。
<請求項66>
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップは、
前記決定された離散化を用いて前記エッジのそれぞれの掃引体積を決定するステップであって、前記ロボットの前方の少なくとも1つの領域における前記複数のボクセルの各々の形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の前記複数のボクセルの各々の形状および体積の両方と相違する、請求項54に記載の方法。
<請求項67>
前記特定されたシナリオを受信するステップをさらに含む、請求項54に記載の方法。
<請求項68>
少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップをさらに有し、
前記エッジ情報のそれぞれのセットは、前記ロボットの1つのペアの状態間の遷移の際に前記第1のロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表す、請求項54記載の方法
<請求項69>
前記少なくとも1つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、
前記フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つのプロセッサの複数の回路のそれぞれに、前記ロボットの少なくとも一部によって掃引されるそれぞれの掃引体積を表すそれぞれのエッジ情報のセットを適用して、前記ロボットの1つのペアの状態間を遷移させるステップをさらに有する、請求項54から68のいずれかに記載の方法
<請求項70>
モーションプラニングを容易にするためのプロセッサベースのシステムであって、前記システムは、
少なくとも1つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、前記ロボットの1つの状態と前記ロボットの別の状態との間を遷移するときに前記ロボットの少なくとも一部が通過するそれぞれの領域を表すいくつかの掃引体積を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
計画グラフ内の複数のエッジの各々について、決定された前記離散化を使用して前記エッジのそれぞれの掃引体積を決定するステップであって、前記計画グラフは複数のノードおよび複数のエッジを含み、各ノードは前記ロボットの複数の状態のうちのそれぞれ1つを表し、前記エッジの各々は前記ノードのそれぞれのペアを結合し、それぞれの前記エッジによって結合されたそれぞれの前記ノードによって表される状態間の前記ロボットによるそれぞれの遷移を表す、該ステップと、
少なくとも特定されたシナリオに対して最も効果的であると評価された、前記ロボットが動作する環境の表現の決定された掃引体積のそれぞれの離散化のうちの少なくとも1つを少なくとも1つの非一時的プロセッサ可読媒体に記憶するステップ
を実行させる、プロセッサベースのシステム。
<請求項71>
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項55~69の方法のいずれかを実行させる、請求項70に記載のプロセッサベースのシステム。
<請求項72>
ロボットのモーションプラニングを容易にするためのシステムにおける動作方法であって、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップと、
環境を感知する1つまたは複数のセンサによって生成されたセンサ情報を受け取るステップであって、前記センサ情報は障害物を含み得る環境を表す、該ステップと、
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性と相違する、該ステップ
を有する、方法。
<請求項73>
少なくとも1つの非一時的プロセッサ可読媒体に、生成された前記障害物を含み得る環境の離散化表現を記憶するステップをさらに有する請求項72記載の方法。
<請求項74>
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含む、請求項72に記載の方法。
<請求項75>
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップは、ロボットにより掃引された体積の離散化された表現を生成するために使用されるボクセルのサイズおよび形状の分布に一致するボクセルのサイズおよび形状の分布を使用して、前記環境の前記離散化された表現を生成するステップを含む、請求項72に記載の方法。
<請求項76>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、特定された前記シナリオに基づいて少なくとも2つの離散化の間で選択するステップを含み、
それぞれの前記離散化のうちの少なくとも2つのボクセルは前記それぞれの離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、前記それぞれの離散化のうちの少なくとも2つの前記ボクセルのそれぞれの不均一性の分布は互いに相違する、請求項72に記載の方法。
<請求項77>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の少なくとも1つの領域の複数のボクセルの各々が前記ロボットの後方の少なくとも1つの領域の複数のボクセルの各々のそれぞれの体積と比較して相対的に小さい体積を有する、該離散化を使用して環境の離散化された表現を生成するステップを含む、請求項72に記載の方法。
<請求項78>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の第1の領域の複数の前記ボクセルのそれぞれが第1の体積を有し、前記ロボットの前方の第2の領域の複数の前記ボクセルが第2の体積を有し、前記第2の体積が前記第1の体積と相違する、該離散化を使用して環境の離散化された表現を生成するステップを含む、請求項72に記載の方法。
<請求項79>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第3の体積が第2の体積と相違する、該離散化を使用して生成するステップを含む、請求項72に記載の方法。
<請求項80>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの前方の第1の領域の複数のボクセルの各々が第1の体積を有し、前記ロボットの前方の第2の領域の複数のボクセルが第2の体積を有し、前記ロボットの前方の第3の領域の複数のボクセルが第3の体積を有し、第2の体積が第1の体積と相違し、第3の体積が第2の体積と相違する、該離散化を使用して生成するステップを含む、請求項72に記載の方法。
<請求項81>
障害を含み得る環境の離散化された表現を生成するためにいくつかの前記離散化のうちのどれを使用するかを決定するステップは、
決定された前記離散化であって、前記ロボットの直前の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方における前記ロボットに関して前記第1の領域から相対的に外側に離間した第2の領域内の複数の前記ボクセルのそれぞれが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した第3の領域内の複数の前記ボクセルのそれぞれが第3の形状を有し、前記第2の体積が前記第1の体積と相違し、前記第3の体積が前記第2の体積と相違する、該ステップを含む、請求項72に記載の方法。
<請求項82>
障害物を含み得る前記環境の離散化表現を生成するステップは、前記ロボットの前方の少なくとも1つの領域内の複数のボクセルの各々の形状が前記ロボットの後方の少なくとも1つの領域の複数のボクセルの各々の形状と相違する、前記決定された離散化を使用して、前記環境の離散化表現を生成するステップを含む、請求項72に記載の方法。
<請求項83>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の第1の領域内の複数の前記ボクセルのそれぞれが第1の形状を有し、前記ロボットの前方の第2の領域内の複数の前記ボクセルが第2の形状を有し、前記第2の形状が前記第1の形状と相違する、請求項72に記載の方法。
<請求項84>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数のボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数のボクセルが第3の形状を有し、前記第3の形状が前記第2の形状と相違する、請求項72に記載の方法。
<請求項85>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の第1の領域内の複数のボクセルの各々が第1の形状を有し、前記ロボットの前方の第2の領域内の複数のボクセルが第2の形状を有し、前記ロボットの前方の第3の領域内の複数のボクセルが第3の形状を有し、前記第2の形状が第1の形状と相違し、前記第3の形状が第2の形状と相違する、請求項72に記載の方法。
<請求項86>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの直前の第1の領域内の複数の前記ボクセルの各々が第1の形状を有し、前記ロボットの前記における前記ロボットに関して前記第1の領域から相対的に外側に離間した複数の前記ボクセルが第2の形状を有し、前記ロボットの前方における前記ロボットに関して前記第2の領域から相対的に外側に離間した複数の前記ボクセルが第3の形状を有し、前記第2の形状が第1の形状と相違し、前記第3の形状が第2の形状と相違する、請求項72に記載の方法。
<請求項87>
障害物を含み得る前記環境の離散化表現を生成するステップは、決定された前記離散化を用いて前記環境の離散化表現を生成するステップを有し、
前記ロボットの前方の少なくとも1つの領域内の複数の前記ボクセルのそれぞれの形状および体積の両方が前記ロボットの後方の少なくとも1つの領域の複数の前記ボクセルのそれぞれの形状および体積の両方と相違する、第1のそれぞれの離散化を生成する、
請求項72に記載の方法。
<請求項88>
前記ロボットが行う前記タスクと前記ロボットが動作する前記環境を表す情報を受け取るステップと、
受け取った情報に少なくとも部分的に基づいて特定されたシナリオを特定するステップ
をさらに含む、請求項72記載の方法。
<請求項89>
前記環境の離散化された表現を少なくとも1つのプロセッサに提供するステップをさらに含む、請求項72記載の方法。
<請求項90>
前記少なくとも1つのプロセッサは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、
前記環境の離散化された表現を、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された複数の回路のそれぞれに適用するステップ
をさらに含む、請求項72から89のいずれかに記載の方法。
<請求項91>
モーションプラニングを容易にするためのプロセッサベースのシステムであって、
少なくとも1つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、
ロボットが実行するタスクと前記ロボットが動作する環境のペアを分類する特定されたシナリオに少なくとも部分的に基づいて、障害物を含み得る環境の離散化表現を生成するためにいくつかの離散化のうちのどれを使用するかを決定するステップと、
環境を感知する1つまたは複数のセンサによって前記障害物を含み得る環境を表すセンサ情報を受け取るステップと、
決定された前記離散化を使用して、前記障害物を含み得る環境の離散化表現を生成するステップであって、決定された前記離散化の複数のボクセルはそれぞれの前記離散化におけるサイズおよび形状のうちの少なくとも1つにおいて不均一であり、決定された前記離散化のボクセルの不均一性のそれぞれの分布は、いくつかの前記離散化のうちの別の1つにおける前記ボクセルの不均一性と相違する、該ステップ
を実行させる、プロセッサベースのシステム。
<請求項92>
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、請求項73~90の方法のいずれかを実行させる、請求項91に記載のプロセッサベースのシステム。
<請求項93>
複数の計画グラフを使用するロボット制御システムにおける動作方法であって、各計画グラフは複数のエッジによってそれぞれ接続された複数のノードをそれぞれ含み、各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれはそれぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表され、
前記方法は、
前記複数の計画グラフのうちの第1の計画グラフに対し、
第1の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第1の計画グラフを更新するステップと、
更新された前記第1の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップと、
更新された前記第1の計画グラフから、前記1つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、
前記方法はさらに、
前記最適化された結果が満足条件を満たさないと判断したことに応じて、
第2の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第2の計画グラフを更新するステップと、
更新された前記第2の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップを含む、方法。
<請求項94>
更新された前記第2の計画グラフから、前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップをさらに含む、請求項93記載の方法。
<請求項95>
前記更新された第2の計画グラフからの前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、
更新された前記第2計画グラフからの前記1つまたは複数の最適化された結果の1つによって特定された遷移を前記ロボットに適用するステップをさらに有する、請求項94に記載の方法。
<請求項96>
前記更新された第2の計画グラフからの前記1つまたは複数の最適化された結果がもし存在しないのなら、当該結果が前記満足条件を満さないと決定したことに応答して、
第3の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第3の計画グラフを更新するステップと、
更新された前記第3の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップをさらに有する、請求項94に記載の方法
<請求項97>
前記更新された第3の計画グラフからの前記1つまたは複数の最適化された結果がもし存在するのなら、当該結果が前記満足条件を満たすと決定したことに応答して、
更新された前記第3計画グラフからの前記1つまたは複数の最適化された結果の1つによって特定される遷移をロボットに適用するステップをさらに有する、請求項96に記載の方法。
<請求項98>
更新された前記第2の計画グラフから、もし存在するのなら前記1つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が任意の経路を生成するかどうかを決定するステップを含む、請求項93に記載の方法。
<請求項99>
更新された前記第2の計画グラフから、もし存在するのなら前記1つまたは複数の最適化された結果が満足条件を満たすかどうかを決定するステップは、前記最適化が衝突のない経路を生成するかどうかを決定するステップを含む、請求項93に記載の方法。
<請求項100>
前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップは、前記第1の計画グラフ内の前記エッジの各々について、前記エッジに関するエッジ情報のセットを、前記複数の回路の各々に並列に適用するステップを含み、前記回路は前記ロボットが動作する環境内の障害物によって占有されるそれぞれの単位体積をそれぞれ表す、請求項93から99のいずれかに記載の方法。
<請求項101>
少なくとも1つのプロセッサが、少なくとも前記第1のロボットが動作する環境内の1つまたは複数の障害物によって占有される複数の単位体積のそれぞれを表す複数の回路を実装するように構成される、請求項100の方法。
<請求項102>
複数の計画グラフを使用するプロセッサベースのロボット制御システムであって、各計画グラフは複数のエッジによって接続された複数のノードをそれぞれ含み、各ノードは第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のペアのそれぞれの間の遷移を表し、前記状態のペアのそれぞれは、それぞれの前記計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表され、
前記システムは、
少なくとも1つのプロセッサと、
プロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、
前記少なくとも1つの非一時的プロセッサ可読媒体は、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
前記複数の計画グラフのうちの第1の計画グラフに対し、
第1の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第1の計画グラフを更新するステップと、
更新された前記第1の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップと、
更新された前記第1の計画グラフから、前記1つまたは複数の最適化された結果もし存在するのなら、当該結果が満足条件を満たすかどうかを決定するステップを含み、
前記方法はさらに、
前記最適化された結果が満足条件を満たさないと判断したことに応じて、
第2の計画グラフの複数のエッジの各々について、前記エッジに関連する掃引体積の離散化された表現と前記ロボットが動作する環境における任意の障害物の離散化された表現の間の衝突検査を実行するステップと、
前記衝突検査に基づいて前記第2の計画グラフを更新するステップと、
更新された前記第2の計画グラフの最適化がもし存在するのならその最適化を実行し、1つまたは複数の最適化された結果を特定するステップ
を実行させる、プロセッサベースのロボット制御システム。
<請求項103>
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項94~101の方法のいずれかを実行させる、請求項102に記載のプロセッサベースのロボット制御システム。

Claims (25)

  1. ロボット制御システムにおける動作方法であって、
    環境内で動作する第1のロボットについて、複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、
    各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
    複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
    第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものについての前記エッジ情報のセットを提供するステップと、
    第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものについての前記エッジ情報のセットを提供するステップを有し、
    前記第2の物理的寸法のセットのうちの少なくとも1つ寸法が前記第1のセットの対応する1つの前記寸法と相違する、方法。
  2. 前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、前記第1のロボットは前記第1の付属肢に取り付けられた第1のエンドエフェクタを有し、前記第1のエンドエフェクタは、少なくとも第1のエンドエフェクタ配置と第2のエンドエフェクタ配置との間で移動するように選択的に動作可能であり、
    前記方法は、
    前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが第1のエンドエフェクタ配置にあることを決定するステップをさらに有し、
    前記第1の物理的寸法のセットは前記第1のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、
    少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第1のエンドエフェクタ配置にあることの決定に応答し、
    前記方法は、
    前記第1の付属肢に取り付けられた第1のエンドエフェクタが第2のエンドエフェクタ配置にあると判定するステップをさらに有し、
    前記第2の物理的寸法のセットは前記第2のエンドエフェクタ配置における前記第1のエンドエフェクタの寸法のセットを表し、
    少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが前記第2のエンドエフェクタ配置にあることの決定に応答する、請求項1に記載の方法。
  3. 前記第1のロボットは前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを有し、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは、前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、
    前記方法は、
    前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持していない配置にあるという決定に応答する、該ステップと、
    前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持している配置にあるという決定に応答する、該ステップ
    をさらに有する、請求項1に記載の方法。
  4. 前記第1のロボットは、前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な少なくとも第1の付属肢を有し、
    前記方法は、
    前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有すると決定するステップをさらに有し、
    前記第1の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第1のエンドエフェクタの寸法のセットを表し、
    少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記第1のロボットが前記第1の付属肢に取り付けられた第1のエンドエフェクタを有するという決定に応答し、
    前記方法は、
    前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有すると決定するステップをさらに有し、
    前記第2のエンドエフェクタが前記第1のエンドエフェクタとは少なくとも1つの形状またはサイズで相違し、
    前記第2の物理的寸法のセットが前記第1の付属肢に取り付けられた前記第2のエンドエフェクタの寸法のセットを表し、
    少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップが、前記第1のロボットが前記第1の付属肢に取り付けられた第2のエンドエフェクタを有するという決定に応答する、請求項1記載の方法。
  5. 前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の物理的状態にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し(例えば、例えば、燃料の消費によって重量が変化し得るために速度が変化し、移動距離が変化し得る)、
    前記方法は、
    前記自律車両または半自律車両のうちの少なくとも1つが第1の物理的状態にあると判定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記自律車両または半自律車両のうちの少なくとも1つが前記第1の物理的状態にあるという決定に応答する、該ステップと、
    前記自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあると決定するステップであって、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、自律車両または半自律車両のうちの少なくとも1つが第2の物理的状態にあるという決定に応答する、該ステップ
    をさらに有する、請求項1に記載の方法。
  6. 少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を前記少なくとも1つのプロセッサの複数の回路の各々に適用して、前記ロボットが動作する環境内の障害物によって占有される単位体積とどのエッジが衝突するかを決定するステップを含む、請求項1~5のいずれかに記載の方法。
  7. 少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップは、前記エッジのうちの1つに対する前記エッジ情報を、前記少なくとも1つのプロセッサの複数の回路のそれぞれに並列に適用するステップを含む、請求項1~5のいずれかに記載の方法。
  8. それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを生成するステップを含む、請求項1~5のいずれかに記載の方法。
  9. それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を2つ以上のボクセルをカバーする体積の単位で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項1~5のいずれかに記載の方法。
  10. それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップは、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズム(直方体)で表すそれぞれのエッジ情報のセットを生成するステップを含む、請求項1~5のいずれかに記載の方法。
  11. それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を矩形プリズムで表すそれぞれのエッジ情報のセットを生成するステップは、前記矩形プリズムの各々に対して、それぞれの前記矩形プリズムの体積を完全に規定する三次元座標のセットを格納するステップを含む、請求項10に記載の方法。
  12. 複数の計画グラフを決定するステップと、それぞれのエッジ情報のセットを生成するステップが、実行前期間中に実行される、請求項1~5のいずれかに記載の方法。
  13. 少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップは、実行期間中に実行される、請求項1~5のいずれかに記載の方法。
  14. プロセッサベースのロボット制御システムであって、
    少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
    環境内で動作する第1のロボットについて複数のエッジによって接続された複数のノードをそれぞれ含む複数の計画グラフを決定するステップであって、各ノードは前記第1のロボットのそれぞれの状態を特徴付ける変数を暗黙的または明示的に表し、各エッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、状態のそれぞれのペアは、それぞれの計画グラフ内のそれぞれのエッジによって結合されたノードのペアのそれぞれの1つによって表される、該ステップと、
    各計画グラフのエッジの少なくとも2つ以上について、それぞれのエッジによって結合されるそれぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を表すそれぞれのエッジ情報のセットを生成するステップと、
    複数の前記計画グラフおよび前記エッジ情報のセットを少なくとも1つの非一時的プロセッサ読取可能記憶装置に記憶するステップと、
    第1の時間に第1の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第1のものに対する前記エッジ情報のセットを提供するステップと、
    第2の時間に第2の物理的寸法のセットを有する前記第1のロボットの少なくとも一部分に基づいて、少なくとも1つのプロセッサに前記計画グラフのうちの第2のものに対する前記エッジ情報のセットを提供するステップ
    を実行させるプロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有し、
    前記第2の物理的寸法のセットのうちの少なくとも1つの寸法が前記第1のセットの前記寸法のうちの対応する1つと相違する、プロセッサベースのロボット制御システム。
  15. 前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項2から13の方法のいずれかを実行させる、請求項14に記載のプロセッサベースのシステム。
  16. ロボット制御システムにおける動作方法であって、
    少なくとも第1のロボットが動作する1つ以上の障害物によって占有される環境の第1の離散化された表現に対して、少なくとも1つのプロセッサに前記環境の第1の離散化された表現の少なくとも一部を供給するステップと、
    前記少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記複数の計画グラフの各計画グラフが前記第1のロボットの異なる物理的寸法のセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間を遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは前記第1の計画グラフのノードのペアのそれぞれによって表され、前記ノードのペアのそれぞれは前記第1の計画グラフのそれぞれのエッジによって接続され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表す、該ステップと、
    対応する遷移が前記ロボットの少なくとも一部と前記環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第1の計画グラフのエッジのいずれかを特定するステップを有する、方法。
  17. 前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、各エッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間を遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積をボクセルで表すエッジ情報のそれぞれのセットを適用するステップを含む、請求項16に記載の方法。
  18. 前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、それぞれのエッジについて、前記少なくとも1つのプロセッサの回路に、前記それぞれのエッジによって結合される前記それぞれのノードによって表される状態間で遷移する際に、前記第1のロボットの少なくとも一部によって掃引される体積を体積単位で表すエッジ情報のそれぞれのセットを適用するステップを含み、前記体積単位はそれぞれ2つ以上のボクセルをカバーする、請求項16に記載の方法。
  19. 前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップであって、前記第2の配置は前記第1の配置とは相違する、該ステップと、
    複数の前記計画グラフの第2の計画グラフの各エッジについて、前記少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップであって、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に、前記第1のロボットの少なくとも一部により掃引される体積を表し、前記第1のロボットの状態のペアは前記第2の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのそれぞれのペアは前記第2の計画グラフのそれぞれのエッジによって結合され、前記それぞれのエッジは前記第1のロボットの状態のそれぞれのペアの間の遷移を表し、前記第2の計画グラフは第1の計画グラフと相違する、該ステップと、
    対応する遷移が前記ロボットの少なくとも一部と環境内の1つまたは複数の障害物の少なくとも一部との間の衝突をもたらす前記第2の計画グラフの前記エッジのいずれかを特定するステップ
    を有する、請求項16の方法。
  20. 前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢を含み、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップが、第2のエンドエフェクタが第1のエンドエフェクタの代わりに前記第1の付属肢に取り付けられるかまたは取り付けられていることを決定するステップを含む、請求項19に記載の方法。
  21. 前記第1のロボットが前記第1のロボットが動作する環境に対して移動するように選択的に動作可能な第1の付属肢と、前記第1の付属肢に取り付けられた第1のエンドエフェクタとを含み、前記第1のエンドエフェクタは少なくとも把持していない配置と把持している配置との間で移動するように選択的に動作可能であり、前記把持している配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つは前記把持していない配置において前記第1のエンドエフェクタによって占められる体積のサイズまたは形状のうちの少なくとも1つとは相違し、前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記第1の付属肢に取り付けられた前記第1のエンドエフェクタが把持配置を変化させたかまたは変化させていることを決定するステップを含む、請求項19に記載の方法。
  22. 前記第1のロボットは自律車両または半自律車両のうちの少なくとも1つであり、第1の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つは、第2の配置にある前記自律車両または半自律車両のうちの少なくとも1つによって占有される体積のサイズまたは形状のうちの少なくとも1つと相違し、
    前記第1のロボットが第1の配置から第2の配置に変更されるかまたは変更されたことを決定するステップは、前記自律車両または半自律車両のうちの少なくとも1つが、前記自律車両または半自律車両のうちの少なくとも1つの前記第1及び第2の配置間で遷移しているかまたは遷移したことを決定するステップを含む、請求項19に記載の方法。
  23. 前記少なくとも1つのプロセッサに前記第1の計画グラフの各エッジのエッジ情報のそれぞれのセットを提供するステップは実行期間中に前記エッジ情報のそれぞれのセットを非一時的記憶装置から取り出すステップを含み、前記エッジ情報のそれぞれのセットは実行前期間中に前記非一時的記憶装置に記憶され
    前記少なくとも1つのプロセッサはフィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つであり、少なくとも1つのプロセッサにエッジ情報のそれぞれのセットを提供するステップは、フィールドプログラマブルゲートアレイまたは特定用途向け集積回路のうちの少なくとも1つに実装された前記少なくとも1つのプロセッサの複数の回路のそれぞれに前記エッジのうちの1つのためのエッジ情報を適用するステップを含む、請求項16~22のいずれかに記載の方法。
  24. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
    少なくとも第1のロボットが動作する1つまたは複数の障害物によって占有される環境の第1の離散化された表現に対して、前記環境の第1の離散化された表現の少なくとも一部を少なくとも1つのプロセッサに供給するステップと、
    少なくとも1つのプロセッサに対するメモリに記憶された複数の計画グラフのうちの第1の計画グラフの各エッジについて、エッジ情報のそれぞれのセットを少なくとも1つのプロセッサに提供するステップであって、前記複数の計画グラフのうちの第1の計画グラフの各エッジは前記第1のロボットの物理的寸法の異なるセットに関連付けられ、前記エッジ情報のそれぞれのセットは前記第1のロボットの状態のペアの間で遷移する際に前記第1のロボットの少なくとも一部によって掃引される体積を表し、前記第1のロボットの状態のペアのそれぞれは前記第1の計画グラフのノードのペアのそれぞれの1つによって表され、前記ノードのペアのそれぞれは前記第1の計画グラフのエッジのそれぞれにより結合され、前記エッジのそれぞれは前記第1のロボットの状態のペアのそれぞれの間の遷移を表す、該ステップと、
    対応する遷移が前記ロボットの少なくとも一部と前記環境内の1つまたは複数の障害物の少なくとも一部の間の衝突をもたらすことになる前記第1の計画グラフの前記エッジのいずれかを特定するステップ
    を実行させるプロセッサ実行可能命令またはデータのうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体を有するプロセッサベースのロボット制御システム。
  25. 前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサ実行可能命令またはデータは前記少なくとも1つのプロセッサに、請求項17~23の方法のいずれかを実行させる、請求項24に記載のプロセッサベースのシステム。
JP2021171704A 2018-02-06 2021-10-20 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作 Active JP7055511B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862626939P 2018-02-06 2018-02-06
US62/626,939 2018-02-06
PCT/US2019/016700 WO2019156984A1 (en) 2018-02-06 2019-02-05 Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same
JP2020564782A JP6969828B2 (ja) 2018-02-06 2019-02-05 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020564782A Division JP6969828B2 (ja) 2018-02-06 2019-02-05 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作

Publications (2)

Publication Number Publication Date
JP2022009305A true JP2022009305A (ja) 2022-01-14
JP7055511B2 JP7055511B2 (ja) 2022-04-18

Family

ID=67475506

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2020564782A Active JP6969828B2 (ja) 2018-02-06 2019-02-05 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作
JP2021171704A Active JP7055511B2 (ja) 2018-02-06 2021-10-20 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作
JP2021171726A Pending JP2022009306A (ja) 2018-02-06 2021-10-20 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020564782A Active JP6969828B2 (ja) 2018-02-06 2019-02-05 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021171726A Pending JP2022009306A (ja) 2018-02-06 2021-10-20 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作

Country Status (6)

Country Link
US (3) US11235465B2 (ja)
EP (1) EP3723948A4 (ja)
JP (3) JP6969828B2 (ja)
CN (1) CN111989195B (ja)
TW (1) TWI822729B (ja)
WO (1) WO2019156984A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2928250T3 (es) 2018-03-21 2022-11-16 Realtime Robotics Inc Planificación del movimiento de un robot para diversos entornos y tareas y mejora del funcionamiento del mismo
US20220193911A1 (en) * 2019-04-17 2022-06-23 Realtime Robotics, Inc. Motion planning graph generation user interface, systems, methods and articles
US11179850B2 (en) * 2019-04-24 2021-11-23 Intrinsic Innovation Llc Robot motion planning
KR102592639B1 (ko) * 2019-11-14 2023-10-23 한국전자통신연구원 시간을 분할하여 교대 작업하는 로봇 및 그 로봇들 간의 작업 교대 방법
US11724387B2 (en) 2020-04-03 2023-08-15 Fanuc Corporation Fast robot motion optimization with distance field
US11407109B2 (en) * 2020-04-16 2022-08-09 Boston Dynamics, Inc. Global arm path planning with roadmaps and precomputed domains
US11498213B2 (en) 2020-09-23 2022-11-15 Applied Materials, Inc. Robot joint space graph path planning and move execution
US11607809B2 (en) * 2020-12-22 2023-03-21 Intrinsic Innovation Llc Robot motion planning accounting for object pose estimation accuracy
US11628568B2 (en) * 2020-12-28 2023-04-18 Industrial Technology Research Institute Cooperative robotic arm system and homing method thereof
CN114690762A (zh) * 2020-12-31 2022-07-01 深圳市海柔创新科技有限公司 货叉碰撞处理方法、装置、机器人、设备、介质及产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012056023A (ja) * 2010-09-09 2012-03-22 Toyota Motor Corp ロボットの動作生成システム及び動作生成方法
JP2013193194A (ja) * 2012-03-22 2013-09-30 Toyota Motor Corp 軌道生成装置、移動体、軌道生成方法及びプログラム
JP2015044274A (ja) * 2013-08-29 2015-03-12 三菱電機株式会社 部品供給装置および部品供給装置のプログラム生成方法

Family Cites Families (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2530261C2 (de) 1974-10-22 1986-10-23 Asea S.p.A., Mailand/Milano Programmiereinrichtung für einen Manipulator
US4163183A (en) 1975-10-28 1979-07-31 Unimation, Inc. Programmable automatic assembly system
US4862373A (en) 1987-05-13 1989-08-29 Texas Instruments Incorporated Method for providing a collision free path in a three-dimensional space
US4949277A (en) 1988-03-09 1990-08-14 North American Philips Corporation Differential budding: method and apparatus for path planning with moving obstacles and goals
US6089742A (en) 1989-11-01 2000-07-18 Warmerdam; Thomas P. H. Method and apparatus for controlling robots and the like using a bubble data hierarchy placed along a medial axis
US5544282A (en) 1991-04-05 1996-08-06 Chen; Pang C. Method and apparatus for planning motions of robot manipulators
US5347459A (en) 1993-03-17 1994-09-13 National Research Council Of Canada Real time collision detection
US5835684A (en) 1994-11-09 1998-11-10 Amada Company, Ltd. Method for planning/controlling robot motion
US6004016A (en) 1996-08-06 1999-12-21 Trw Inc. Motion planning and control for systems with multiple mobile objects
US5795297A (en) 1996-09-12 1998-08-18 Atlantis Diagnostics International, L.L.C. Ultrasonic diagnostic imaging system with personal computer architecture
US6049756A (en) 1997-11-12 2000-04-11 Lockheed Martin Corporation System and method for avoiding collision between vector and solid objects
JPH11296229A (ja) 1998-02-13 1999-10-29 Komatsu Ltd 車両の誘導装置
DE19831216A1 (de) 1998-07-03 2000-01-05 Amecon Gmbh Verfahren und Vorrichtung zur Bestimmung der Abhängigkeit einer ersten Meßgröße von einer zweiten Meßgröße
US6259988B1 (en) 1998-07-20 2001-07-10 Lockheed Martin Corporation Real-time mission adaptable route planner
DE19854011A1 (de) 1998-11-12 2000-05-25 Knoll Alois Einrichtung und Verfahren zum Vermessen von Mechanismen und ihrer Stellung
US6470301B1 (en) 1999-10-08 2002-10-22 Dassault Systemes Optimization tool for assembly workcell layout
US6526373B1 (en) 1999-10-08 2003-02-25 Dassault Systemes Optimization tool for robot placement
JP2002073130A (ja) 2000-06-13 2002-03-12 Yaskawa Electric Corp ロボットの大域動作経路計画方法とその制御装置
DE10063722C2 (de) 2000-12-20 2003-07-03 Siemens Ag Ruckbegrenzung mit Adaption der Bahndynamik
JP2003127077A (ja) 2001-10-19 2003-05-08 Komatsu Ltd 作業ロボットのロボットプログラム修正装置。
DE10200680B4 (de) 2002-01-10 2004-03-25 Siemens Ag Minimale Schwingungsanregung beim Verfahren mit Ruckbegrenzung durch Adaption von Ruckprofilen
US10065317B2 (en) 2016-06-30 2018-09-04 General Electric Company Control system for coordinating robotic machines to collaborate on tasks
US6671582B1 (en) 2002-08-26 2003-12-30 Brian P. Hanley Flexible agricultural automation
WO2004095520A2 (en) 2003-04-22 2004-11-04 Berkeley Process Control, Inc. System of path planning for robotic manipulators based on maximum acceleration and finite jerk constraints
JP4251545B2 (ja) 2003-07-11 2009-04-08 独立行政法人科学技術振興機構 移動ロボット用経路計画システム
JP3834307B2 (ja) 2003-09-29 2006-10-18 ファナック株式会社 ロボットシステム
US7447593B2 (en) 2004-03-26 2008-11-04 Raytheon Company System and method for adaptive path planning
WO2005103848A1 (en) 2004-04-22 2005-11-03 Frontline Robotics Open control system architecture for mobile autonomous systems
DE102004059966B3 (de) 2004-12-13 2006-06-22 Siemens Ag Verfahren und Einrichtung zur Bewegungsführung eines bewegbaren Maschinenelements einer numerisch gesteurten Maschine
JP2006224740A (ja) 2005-02-16 2006-08-31 Advics:Kk 車両用走行支援装置
US20060235610A1 (en) 2005-04-14 2006-10-19 Honeywell International Inc. Map-based trajectory generation
US20060247852A1 (en) 2005-04-29 2006-11-02 Kortge James M System and method for providing safety-optimized navigation route planning
US7577498B2 (en) 2005-08-23 2009-08-18 Motoman, Inc. Apparatus and methods for a robotic beverage server
JP4577248B2 (ja) 2006-03-23 2010-11-10 トヨタ自動車株式会社 移動体の経路探索システム、経路探索方法及び経路探索プログラム
US7609020B2 (en) 2006-07-11 2009-10-27 Delaware Capital Formation, Inc. Geometric end effector system
JP5112666B2 (ja) 2006-09-11 2013-01-09 株式会社日立製作所 移動装置
DE602006003435D1 (de) 2006-09-14 2008-12-11 Abb Research Ltd Verfahren und Vorrichtung zur Vermeidung von Kollisionen zwischen einem Industrieroboter und einem Objekt
US7974737B2 (en) 2006-10-31 2011-07-05 GM Global Technology Operations LLC Apparatus and method of automated manufacturing
KR100888475B1 (ko) 2007-02-02 2009-03-12 삼성전자주식회사 모델간 충돌 여부 검사 방법 및 장치
EP1972415B1 (en) 2007-03-23 2019-01-02 Honda Research Institute Europe GmbH Robots with collision avoidance functionality
US7865277B1 (en) 2007-05-07 2011-01-04 The United States Of America As Represented By The Secretary Of The Navy Obstacle avoidance system and method
US8082064B2 (en) 2007-08-24 2011-12-20 Elite Engineering Corporation Robotic arm and control system
US8380424B2 (en) 2007-09-28 2013-02-19 The Boeing Company Vehicle-based automatic traffic conflict and collision avoidance
EP2085279B1 (en) 2008-01-29 2011-05-25 Ford Global Technologies, LLC A system for collision course prediction
WO2009103335A1 (en) 2008-02-20 2009-08-27 Abb Research Ltd. Method and system for optimizing the layout of a robot work cell
US8571745B2 (en) 2008-04-10 2013-10-29 Robert Todd Pack Advanced behavior engine
US9144904B2 (en) 2008-05-21 2015-09-29 Fanuc Robotics America Corporation Method and system for automatically preventing deadlock in multi-robot systems
US8315738B2 (en) 2008-05-21 2012-11-20 Fanuc Robotics America, Inc. Multi-arm robot system interference check via three dimensional automatic zones
US8706452B2 (en) 2008-06-26 2014-04-22 Siemens Product Lifecycle Management Software Inc. System and method for collision-free CAD design of pipe and tube paths
JP5086942B2 (ja) 2008-09-02 2012-11-28 トヨタ自動車株式会社 経路探索装置、経路探索方法、及び経路探索プログラム
US20100145516A1 (en) 2008-12-08 2010-06-10 Illinois Tool Works Inc. High voltage monitoring system and method for spray coating systems
KR101554515B1 (ko) 2009-01-07 2015-09-21 삼성전자 주식회사 로봇의 경로계획장치 및 그 방법
US8074431B1 (en) 2009-06-01 2011-12-13 Top Tier, Inc. Hybrid palletizer
KR101105325B1 (ko) 2009-09-08 2012-01-16 부산대학교 산학협력단 실제 로봇의 다중 경로계획 방법
US8386080B2 (en) 2009-09-15 2013-02-26 Harris Corporation Robotic apparatus implementing collision avoidance scheme and associated methods
JP4975075B2 (ja) 2009-09-30 2012-07-11 クラリオン株式会社 ナビゲーション装置および経路演算方法
WO2011056633A1 (en) 2009-10-27 2011-05-12 Battelle Memorial Institute Semi-autonomous multi-use robot system and method of operation
US20110153080A1 (en) 2009-12-22 2011-06-23 Siemens Product Lifecycle Management Software Inc. Method and apparatus for industrial robotic pathscycle time optimization using fly by
CN101837591B (zh) * 2010-03-12 2011-08-24 西安电子科技大学 基于双群协同竞争粒子群和Ferguson样条的机器人路径规划方法
US20120061155A1 (en) 2010-04-09 2012-03-15 Willow Garage, Inc. Humanoid robotics system and methods
JP2011249711A (ja) 2010-05-31 2011-12-08 Kyocera Corp 配線基板およびその実装構造体
US8855812B2 (en) 2010-07-23 2014-10-07 Chetan Kapoor System and method for robot safety and collision avoidance
EP2572837B1 (en) 2010-08-31 2014-06-11 Kabushiki Kaisha Yaskawa Denki Robot, robot system, robot control device, and state determining method
EP2619742B1 (en) 2010-09-24 2018-02-28 iRobot Corporation Systems and methods for vslam optimization
US8509982B2 (en) 2010-10-05 2013-08-13 Google Inc. Zone driving
JP2012190405A (ja) 2011-03-14 2012-10-04 Toyota Motor Corp 経路情報修正装置、軌道計画装置、及びロボット
JP5774361B2 (ja) 2011-04-28 2015-09-09 本田技研工業株式会社 軌道計画方法、軌道計画システム及び軌道計画・制御システム
JP5981215B2 (ja) * 2011-05-05 2016-08-31 ファナック アメリカ コーポレイション マルチロボットシステムのデッドロックを自動的に防止する方法及びシステム
JP2012243029A (ja) 2011-05-18 2012-12-10 Toyota Central R&D Labs Inc 経路探索機能付き移動体
US8825208B1 (en) 2011-06-10 2014-09-02 Richard Mark Benson Automated construction machinery and method
JP5472214B2 (ja) 2011-06-20 2014-04-16 株式会社安川電機 ピッキングシステム
KR101634463B1 (ko) 2011-06-29 2016-06-28 미쓰비시덴키 가부시키가이샤 부품 공급 장치
TW201318793A (zh) 2011-11-08 2013-05-16 Univ Minghsin Sci & Tech 機器人光學定位系統及其定位方法
WO2013101273A1 (en) 2011-12-30 2013-07-04 St. Jude Medical, Atrial Fibrillation Division, Inc. System and method for detection and avoidance of collisions of robotically-controlled medical devices
SG11201405840TA (en) 2012-03-22 2014-10-30 Israel Aerospace Ind Ltd Planning and monitoring of autonomous-mission
KR20130112507A (ko) 2012-04-04 2013-10-14 인하대학교 산학협력단 S* 알고리즘을 이용한 이동로봇의 안전경로계획 수립방법
US20130343640A1 (en) 2012-06-21 2013-12-26 Rethink Robotics, Inc. Vision-guided robots and methods of training them
JP6128767B2 (ja) 2012-07-05 2017-05-17 キヤノン株式会社 ロボット制御装置、及びロボット制御方法
KR101441187B1 (ko) 2012-07-19 2014-09-18 고려대학교 산학협력단 자율 보행 로봇 경로 계획 방법
JP6069923B2 (ja) * 2012-07-20 2017-02-01 セイコーエプソン株式会社 ロボットシステム、ロボット、ロボット制御装置
KR20150058250A (ko) 2012-08-24 2015-05-28 유니버시티 오브 휴스턴 로봇 장치 및 영상 안내 및 로봇 지원 수술을 위한 시스템
US9043025B2 (en) 2012-08-31 2015-05-26 Rethink Robotics, Inc. Systems and methods for safe robot operation
JP6273084B2 (ja) 2012-09-20 2018-01-31 株式会社安川電機 ロボットシステムおよびワークの搬送方法
EP2906396A1 (en) 2012-10-11 2015-08-19 ABB Technology Ltd. A method and an apparatus for automatically generating a collision free return program for returning a robot from a stop position to a predefined restart position
KR102009482B1 (ko) 2012-10-30 2019-08-14 한화디펜스 주식회사 로봇의 경로계획 장치와 방법 및 상기 방법을 구현하는 프로그램이 기록된 기록 매체
US9227322B2 (en) 2012-11-30 2016-01-05 Fanuc Robotics America Corporation Multi-arm robotic painting process synchronization
US9405296B2 (en) 2012-12-19 2016-08-02 Elwah LLC Collision targeting for hazard handling
US8972057B1 (en) 2013-01-09 2015-03-03 The Boeing Company Systems and methods for generating a robotic path plan in a confined configuration space
US9393686B1 (en) 2013-03-15 2016-07-19 Industrial Perception, Inc. Moveable apparatuses having robotic manipulators and conveyors to facilitate object movement
JP5962560B2 (ja) 2013-03-22 2016-08-03 トヨタ自動車株式会社 経路探索装置、移動体、経路探索方法及びプログラム
WO2015017444A1 (en) 2013-07-30 2015-02-05 Intelligrated Headquarters Llc Robotic carton unloader
US9280899B2 (en) 2013-08-06 2016-03-08 GM Global Technology Operations LLC Dynamic safety shields for situation assessment and decision making in collision avoidance tasks
US9352465B2 (en) 2013-11-12 2016-05-31 Canon Kabushiki Kaisha Control method for robot apparatus and robot apparatus
WO2015113203A1 (en) 2014-01-28 2015-08-06 Abb Technology Ltd Method and apparatus for optimizing performance of robotic cell
JP5897624B2 (ja) 2014-03-12 2016-03-30 ファナック株式会社 ワークの取出工程をシミュレーションするロボットシミュレーション装置
JP5877867B2 (ja) 2014-04-25 2016-03-08 ファナック株式会社 複数台のロボットのシミュレーション装置
DE102014212898A1 (de) 2014-07-03 2016-01-07 Robert Bosch Gmbh Verfahren zum Ermitteln einer Notfall-Trajektorie und Verfahren zum teilautomatisierten oder automatisierten Führen eines Ego-Fahrzeugs
US9283678B2 (en) * 2014-07-16 2016-03-15 Google Inc. Virtual safety cages for robotic devices
US11576543B2 (en) 2014-07-18 2023-02-14 Ali Ebrahimi Afrouzi Robotic vacuum with rotating cleaning apparatus
US9403275B2 (en) 2014-10-17 2016-08-02 GM Global Technology Operations LLC Dynamic obstacle avoidance in a robotic system
JP5980873B2 (ja) 2014-10-17 2016-08-31 ファナック株式会社 ロボットの干渉領域設定装置
US20160121487A1 (en) 2014-11-03 2016-05-05 Qualcomm Incorporated Communicating Configurable Instruction Sets to Robots for Controlling Robot Behavior
EP3250347B1 (en) 2015-01-26 2023-11-08 Duke University Specialized robot motion planning hardware and methods of making and using same
CN107206590B (zh) 2015-02-13 2021-02-05 Abb瑞士股份有限公司 用于避免两个机器人之间的碰撞的方法
US10019006B2 (en) 2015-04-08 2018-07-10 University Of Maryland, College Park Surface vehicle trajectory planning systems, devices, and methods
US9327397B1 (en) 2015-04-09 2016-05-03 Codeshelf Telepresence based inventory pick and place operations through robotic arms affixed to each row of a shelf
US9687982B1 (en) * 2015-05-27 2017-06-27 X Development Llc Adapting programming of a robot and/or control of the robot based on one or more parameters of an end effector of the robot
US20160357187A1 (en) 2015-06-05 2016-12-08 Arafat M.A. ANSARI Smart vehicle
JP6446331B2 (ja) 2015-06-08 2018-12-26 日立オートモティブシステムズ株式会社 扁平ビーム生成アンテナを有するセンサ
US20170004406A1 (en) 2015-06-30 2017-01-05 Qualcomm Incorporated Parallel belief space motion planner
US9707681B2 (en) 2015-07-27 2017-07-18 Siemens Industry Software Ltd. Anti-collision management of overlapping robotic movements
KR101724887B1 (ko) 2015-08-10 2017-04-07 현대자동차주식회사 전방 도로 형상과 연결을 분석해 차선 변경과 타이밍을 결정하는 자율주행 제어 장치 및 방법
WO2017033352A1 (ja) 2015-08-25 2017-03-02 川崎重工業株式会社 産業用遠隔操作ロボットシステム
JP6760297B2 (ja) 2015-09-29 2020-09-23 ソニー株式会社 信号処理装置、信号処理方法およびプログラム
KR20170044987A (ko) 2015-10-16 2017-04-26 한국전기연구원 저크가 제한된 궤적 생성 방법
KR101748632B1 (ko) 2015-10-29 2017-06-20 한국과학기술연구원 로봇의 구동 경로를 계획하기 위한 로봇 제어 시스템 및 로봇 구동 경로 계획방법
US9632502B1 (en) 2015-11-04 2017-04-25 Zoox, Inc. Machine-learning systems and techniques to optimize teleoperation and/or planner decisions
US10496766B2 (en) 2015-11-05 2019-12-03 Zoox, Inc. Simulation system and methods for autonomous vehicles
EP3171133B1 (en) 2015-11-19 2020-03-11 Sikorsky Aircraft Corporation Kinematic motion planning with regional planning constraints
US10093021B2 (en) * 2015-12-02 2018-10-09 Qualcomm Incorporated Simultaneous mapping and planning by a robot
JP6690213B2 (ja) 2015-12-09 2020-04-28 セイコーエプソン株式会社 ロボット、制御装置およびロボットシステム
US10012984B2 (en) 2015-12-14 2018-07-03 Mitsubishi Electric Research Laboratories, Inc. System and method for controlling autonomous vehicles
US10705528B2 (en) 2015-12-15 2020-07-07 Qualcomm Incorporated Autonomous visual navigation
US10665115B2 (en) 2016-01-05 2020-05-26 California Institute Of Technology Controlling unmanned aerial vehicles to avoid obstacle collision
US10035266B1 (en) 2016-01-18 2018-07-31 X Development Llc Generating robot trajectories using a real time trajectory generator and a path optimizer
JP6576255B2 (ja) 2016-01-25 2019-09-18 キヤノン株式会社 ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
US9645577B1 (en) 2016-03-23 2017-05-09 nuTonomy Inc. Facilitating vehicle driving and self-driving
WO2017168187A1 (en) 2016-03-31 2017-10-05 Siemens Industry Software Ltd. Method and system for determining optimal positioning of a plurality of robots in a simulated production environment
WO2017192144A1 (en) 2016-05-05 2017-11-09 Harman International Industries, Incorporated Systems and methods for driver assistance
US9687983B1 (en) * 2016-05-11 2017-06-27 X Development Llc Generating a grasp pose for grasping of an object by a grasping end effector of a robot
US9981382B1 (en) 2016-06-03 2018-05-29 X Development Llc Support stand to reorient the grasp of an object by a robot
US9880561B2 (en) 2016-06-09 2018-01-30 X Development Llc Sensor trajectory planning for a vehicle
WO2017214581A1 (en) * 2016-06-10 2017-12-14 Duke University Motion planning for autonomous vehicles and reconfigurable motion planning processors
US9981383B1 (en) 2016-08-02 2018-05-29 X Development Llc Real-time trajectory generation for actuators of a robot to reduce chance of collision with obstacle(s)
US10345815B2 (en) 2016-09-14 2019-07-09 Qualcomm Incorporated Motion planning and intention prediction for autonomous driving in highway scenarios via graphical model-based factorization
US10131053B1 (en) * 2016-09-14 2018-11-20 X Development Llc Real time robot collision avoidance
DE102016120763B4 (de) * 2016-10-31 2019-03-14 Pilz Gmbh & Co. Kg Verfahren zur kollisionsfreien Bewegungsplanung
WO2018087550A2 (en) 2016-11-09 2018-05-17 Inventive Cogs (Campbell) Limited Vehicle route guidance
KR102518532B1 (ko) 2016-11-11 2023-04-07 현대자동차주식회사 자율주행차량의 경로 결정장치 및 그 방법
US10012988B2 (en) 2016-11-29 2018-07-03 Mitsubishi Electric Research Laboratories, Inc. Methods and systems for path planning using a network of safe-sets
US10296012B2 (en) 2016-12-21 2019-05-21 X Development Llc Pre-computation of kinematically feasible roadmaps
US10480947B2 (en) 2016-12-21 2019-11-19 X Development Llc Boolean satisfiability (SAT) reduction for geometry and kinematics agnostic multi-agent planning
US20180189683A1 (en) 2016-12-29 2018-07-05 NextEv USA, Inc. Autonomous ev charging priority network
US11541543B2 (en) 2017-02-07 2023-01-03 Veo Robotics, Inc. Dynamic, interactive signaling of safety-related conditions in a monitored environment
WO2018148181A1 (en) 2017-02-07 2018-08-16 Veo Robotics, Inc. Workspace safety monitoring and equipment control
DE102017102749A1 (de) 2017-02-13 2018-08-16 Festo Ag Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems
US10430641B2 (en) 2017-03-08 2019-10-01 GM Global Technology Operations LLC Methods and systems for object tracking using bounding boxes
US10303180B1 (en) * 2017-04-20 2019-05-28 X Development Llc Generating and utilizing non-uniform volume measures for voxels in robotics applications
KR101937269B1 (ko) 2017-05-15 2019-01-14 한국생산기술연구원 로봇 모션 경로 계획방법
US11358337B2 (en) 2017-05-24 2022-06-14 Divergent Technologies, Inc. Robotic assembly of transport structures using on-site additive manufacturing
US11014240B2 (en) 2017-09-05 2021-05-25 Abb Schweiz Ag Robot having dynamic safety zones
US10782694B2 (en) 2017-09-07 2020-09-22 Tusimple, Inc. Prediction-based system and method for trajectory planning of autonomous vehicles
EP3486612B1 (en) 2017-11-20 2020-07-01 Robert Bosch GmbH Method for generating a trajectory
US10466707B2 (en) 2017-12-22 2019-11-05 X Development Llc Planning robot stopping points to avoid collisions
US10480952B2 (en) * 2018-02-01 2019-11-19 Didi Research America, Llc Probabilistic navigation system and method
AT520958A1 (de) 2018-03-09 2019-09-15 Tgw Logistics Group Gmbh Robotersystem mit an Warentypen angepassten Bewegungsabläufen und Betriebsverfahren hierfür
ES2928250T3 (es) 2018-03-21 2022-11-16 Realtime Robotics Inc Planificación del movimiento de un robot para diversos entornos y tareas y mejora del funcionamiento del mismo
US11216009B2 (en) 2018-06-25 2022-01-04 Intrinsic Innovation Llc Robot coordination in a shared workspace
CN112601641B (zh) 2018-08-23 2024-03-08 实时机器人有限公司 用于机器人运动规划的碰撞检测
US10809732B2 (en) 2018-09-25 2020-10-20 Mitsubishi Electric Research Laboratories, Inc. Deterministic path planning for controlling vehicle movement
JP7394853B2 (ja) 2018-12-04 2023-12-08 デューク・ユニバーシティ 動的物体を有する環境における運動計画を促進する装置、方法及び物品
EP3725472A1 (de) 2019-04-16 2020-10-21 Siemens Aktiengesellschaft Verfahren zum ermitteln einer trajektorie eines roboters
US11179850B2 (en) 2019-04-24 2021-11-23 Intrinsic Innovation Llc Robot motion planning
JP7222803B2 (ja) 2019-04-25 2023-02-15 株式会社日立製作所 軌道計画装置、軌道計画方法及びプログラム
GB202215836D0 (en) 2019-05-07 2022-12-07 Motional Ad Llc Systems and methods for planning and updating a vehicle's trajectory
TWI699636B (zh) 2019-05-21 2020-07-21 華邦電子股份有限公司 協同型機器人控制系統和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012056023A (ja) * 2010-09-09 2012-03-22 Toyota Motor Corp ロボットの動作生成システム及び動作生成方法
JP2013193194A (ja) * 2012-03-22 2013-09-30 Toyota Motor Corp 軌道生成装置、移動体、軌道生成方法及びプログラム
JP2015044274A (ja) * 2013-08-29 2015-03-12 三菱電機株式会社 部品供給装置および部品供給装置のプログラム生成方法

Also Published As

Publication number Publication date
JP2021513466A (ja) 2021-05-27
US20230356400A1 (en) 2023-11-09
TW201941887A (zh) 2019-11-01
JP2022009306A (ja) 2022-01-14
US11745346B2 (en) 2023-09-05
CN111989195B (zh) 2023-07-07
CN111989195A (zh) 2020-11-24
US20190240835A1 (en) 2019-08-08
EP3723948A4 (en) 2021-09-15
TWI822729B (zh) 2023-11-21
US20220080594A1 (en) 2022-03-17
WO2019156984A1 (en) 2019-08-15
JP6969828B2 (ja) 2021-11-24
EP3723948A1 (en) 2020-10-21
JP7055511B2 (ja) 2022-04-18
US11235465B2 (en) 2022-02-01

Similar Documents

Publication Publication Date Title
JP7055511B2 (ja) 1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作
JP7141665B2 (ja) ロボットの動作計画に役立つ衝突検出
US11964393B2 (en) Motion planning of a robot for various environments and tasks and improved operation of same
JP7394853B2 (ja) 動的物体を有する環境における運動計画を促進する装置、方法及び物品
JP6705977B2 (ja) ロボットパス生成装置及びロボットシステム
EP3250347B1 (en) Specialized robot motion planning hardware and methods of making and using same
US20190217857A1 (en) Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
US20200398428A1 (en) Motion planning for multiple robots in shared workspace
JP6895082B2 (ja) 干渉判定方法、干渉判定システム及びコンピュータプログラム
CN111015656A (zh) 一种机器人主动避障的控制方法、装置及存储介质
Yang et al. HDRM: A resolution complete dynamic roadmap for real-time motion planning in complex scenes
WO2022056050A1 (en) Fine-grained industrial robotic assemblies
JP2021526081A (ja) 制御装置、制御方法、ロボット装置、およびプログラム
WO2021188566A1 (en) Digital representations of robot operational environment, useful in motion planning for robots
US20230286156A1 (en) Motion planning and control for robots in shared workspace employing staging poses
TW202123031A (zh) 用以便利具有動態物件環境中之運動規劃的裝置、方法及物品
WO2022250658A1 (en) Transformation for covariate shift of grasp neural networks
WO2024019701A1 (en) Bin wall collision detection for robotic bin picking

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211102

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220316

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220330

R150 Certificate of patent or registration of utility model

Ref document number: 7055511

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150