[go: up one dir, main page]

JP7511259B2 - モーション計画グラフ生成ユーザインターフェース、システム、方法、および物品 - Google Patents

モーション計画グラフ生成ユーザインターフェース、システム、方法、および物品 Download PDF

Info

Publication number
JP7511259B2
JP7511259B2 JP2021561986A JP2021561986A JP7511259B2 JP 7511259 B2 JP7511259 B2 JP 7511259B2 JP 2021561986 A JP2021561986 A JP 2021561986A JP 2021561986 A JP2021561986 A JP 2021561986A JP 7511259 B2 JP7511259 B2 JP 7511259B2
Authority
JP
Japan
Prior art keywords
processor
poses
autonomously
robot
pose
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.)
Active
Application number
JP2021561986A
Other languages
English (en)
Other versions
JPWO2020214723A5 (ja
JP2022529681A (ja
Inventor
フロイド-ジョーンズ,ウィリアム
マーレイ,シーン
リャン,マシュー
シーバーリング,アルネ
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 JP2022529681A publication Critical patent/JP2022529681A/ja
Publication of JPWO2020214723A5 publication Critical patent/JPWO2020214723A5/ja
Application granted granted Critical
Publication of JP7511259B2 publication Critical patent/JP7511259B2/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
    • 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
    • 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
    • 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/40099Graphical user interface for robotics, visual robot user interface
    • 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/40108Generating possible sequence of steps as function of timing and conflicts
    • 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/40392Programming, visual robot programming language

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Description

本開示は一般に、ロボットのモーション計画に関し、特に、ロボットのモーション計画に有用なモーション計画グラフの生成を容易にするユーザインターフェース、システム、方法、および物品に関する。
モーション計画は、可動付属肢を有するロボットおよび自律または半自律車両を含むロボット制御およびロボット工学における基本的な問題である。モーション計画はロボットが開始状態またはポーズ(又は、姿勢)から目標状態またはポーズへと追従することができる経路を完全に指定し、典型的には、動作環境内の障害物と衝突することなく、または動作環境内の障害物と衝突する可能性を低減する。モーション計画(又は、モーションプランニング/動作プラニング/動作計画/運動計画/motion planning/動作を計画すること)の課題は、ロボット自体の特性が変化しても、動作中の障害物だけでなく、ロボット自体の運動学を説明する比較的低コストで非常に高速な速度でモーション計画を実行する能力を含む。例えば、そのような特性はロボットが様々なサイズの物体を保持しているとき、異なるエンドエフェクタに変更するとき、または異なる付属肢(又は、アペンデージ/appendage)に変更するときに、ロボットによって占有されていると考えられる容積を含むことができる。また、プロセッサチップ回路上に記憶することができる限られた量のモーション計画情報に関しても課題がある。
モーション計画グラフツールキットはモーションプランナ(例えば、リアルタイムロボットモーション計画アクセラレータおよびRapidSense Spatial Perceptionシステム(又は、ラピッドセンス空間感知システム))によって使用されるモーション計画グラフ(本明細書では交換可能にロードマップまたはロードマップファイルまたはラティス(又は、格子/lattice)と呼ばれる)の作成または生成を可能にする。モーション計画グラフツールキットは、1つ以上の非一時的コンピュータまたはプロセッサ可読媒体上に記憶されるプロセッサ実行可能命令またはアプリケーション(例えば、ソフトウェアおよび/またはファームウェア)として実装される。モーション計画グラフツールキットは、直感的なユーザインターフェース、例えば直感的なグラフィカルユーザインターフェース(GUI)を提供する。アプリケーションはエンドユーザがロボットのデジタルモデルまたは仮想モデル、およびロボットが動作する動作環境(本明細書では互換的にワークセルと呼ばれる)のデジタル表現または仮想表現と対話して、既知の位置を有する物体(例えば、静止物体)に関して運動学的(又は、動力学的に)に検査(又は、チェック)され、衝突検査されたモーション計画グラフまたはロードマップまたはラティスを生成または作成することを可能にする。運動学的検査はロボットが例えば、物理的な幾何学的形状または設計、またはロボット(例えば、関節の数、関節の位置、自由度、付属肢の長さ)に基づいて、定義された状態またはポーズになれるか、またはそれに移動し得るかを決定することを含み得る。衝突検査は、ロボットが例えば、環境内の静止物体と衝突することがないなど、衝突無しで定義された状態またはポーズになれるか、または移動することができるかどうかを判定することを含むことができる。
システムまたはアプリケーションは起点の(又は、原点の/オリジンの)または「シード」ポーズ(”seed” poses)の指定を可能にするユーザインターフェース(例えば、グラフィカルユーザインターフェース)を提示することができる。これは、有利には、ロボットおよび障害物を伴う環境の表現が提示されるプレゼンテーションウィンドを提供することができる。ユーザインターフェースは起点またはシードポーズが視覚的に指定されることを可能にするツールを提供することができ、ロボットの現在のポーズ、将来のポーズ、または過去のポーズさえも表すことができる。
システムまたはアプリケーションはいくつか(又は、多数)の追加ポーズ、例えば、隣接ポーズまたは同じ領域内のポーズを自律的に生成することができ、起点ポーズおよび追加または隣接ポーズはポーズグループ(又は、ポーズのグループ)を形成し、また、自律的にいくつかのエッジを形成し、各エッジが、起点ポーズおよび追加または隣接ポーズを含むポーズグループのポーズのそれぞれのペア間の移行(又は、遷移)を識別する。
システムまたはアプリケーションは、ロボットの自己衝突またはロボットにとって不可能なポーズを識別するなど、運動学的検査を自律的に実行してもよい。
システムまたはアプリケーションは、ポーズのそれぞれの衝突検査を自律的に実行することができる。システムまたはアプリケーションは、ポーズのそれぞれのペア(又は、対)の間の各移行の衝突検査を自律的に実行することができる。
システムまたはアプリケーションはロボットが自己衝突しているか、またはワークスペース内の物体と衝突している場合に、ポーズグループから任意のポーズを自律的に除去することができる。
ユーザインターフェースを提供するためのプロセッサベースのシステムにおけるオペレーションの方法は、
1つまたは複数の起点またはシードポーズの視覚的指定を可能にする少なくとも1つのユーザインターフェース要素を提供するステップと、
1つまたは複数の起点またはシードポーズの指定を受信するステップと、
例えば、隣接ポーズまたは同じ領域内のポーズなどのいくつかの追加ポーズを自律的に生成するステップであって、起点ポーズおよび追加または隣接ポーズがポーズグループを形成する、該ステップと、
いくつかのエッジを自律的に生成するステップであって、各エッジが起点ポーズおよび追加または隣接ポーズを含むポーズグループのポーズのそれぞれのペア間の移行を特定する、該ステップを含むものとして要約され得る。
この方法は、プロセッサベースのシステムによって運動学的検査を自律的に実行することをさらに含むことができる。運動学的検査を自律的に実行することは、ロボットの幾何学的形状に基づいて、プロセッサベースのシステムによって自律的に生成された追加ポーズの運動学的検査を自律的に実行することを含むことができる。
この方法は、各ポーズの衝突検査を自律的に実行するステップをさらに含むことができる。
この方法は、ポーズのそれぞれのペアの間の各移行の衝突検査を自律的に実行するステップをさらに含むことができる。
この方法はさらに、プロセッサベースのシステムによって、ポーズグループから、ロボットが自己衝突しているか、またはワークスペース(又は、作業空間)内の物体と衝突している任意のポーズを自律的に排除することを含むことができる。
本明細書では可動付属肢およびエンドエフェクタを有するロボットに関して、実装形態および例を一般的に説明するが、本明細書で説明する様々な構造、プロセス、および技法を、例えば自律車両を含む他のロボットに適用することができる。特に明記しない限り、本明細書におけるロボットへの言及は、移動可能な付属肢を有するロボット、ならびに自律車両の形態のロボットを含む。本明細書では、リアルタイムロボットモーション計画加速器(MPA)に関して、実施形態および例を一般的に説明するが、他のモーション計画器は本明細書で一般的に説明されるモーション計画グラフ、ロードマップ、またはラティスを使用することができる。
図面において、同一の参照番号は、同様の要素または作用を示す。図面における要素のサイズおよび相対位置は、必ずしも一定の縮尺で描かれてはいない。例えば、さまざまな要素の形状および角度は一定の縮尺で描かれず、これらの要素のいくつかは、図面を見やすくするために、随時適当に拡大および配置されている。さらに、描かれた要素の特定の形状は、特定の要素の実際の形状に関するいかなる情報も伝えることを意図しておらず、図面における認識を容易にするために単に選択されたものである。
図1は、1つの例示としての実施に従って、ロボットが動作し得る環境の概略図である。
図2は、少なくとも部分的に、図1の環境で動作することができるロボットのモーション計画に有用なモーション計画グラフを生成するように動作可能な、1つの例示された実施形態によるプロセッサベースのシステムの機能ブロック図である。
図3Aは、図示された一実施形態による、図2のプロセッサベースのシステムによって最初に提示されるグラフィカルユーザインターフェースの最初の画面のスクリーンプリント(又は、スクリーン画面)であり、モーション計画グラフを事前に生成する。
図3Bは、図示された一実施形態による、図2のプロセッサベースシステムによって2回目に提示されるグラフィカルユーザインターフェースの第1画面のスクリーンプリントである。
図3Cは、図示された一実施形態による、図2のプロセッサベースシステムによって提示されるグラフィカルユーザインターフェースの新規プロジェクトダイアログボックスのスクリーンプリントである。
図3Dは、図示された一実施形態による、図2のプロセッサベースシステムによって提示されるグラフィカルユーザインターフェースの衝突部品取り付けダイアログボックスのスクリーンプリントである。
図3Eは、図示された一実施形態による、図2のプロセッサベースシステムによって提示されるグラフィカルユーザインターフェースのエンドエフェクタダイアログボックスのスクリーンプリントである。
図3Fは、図示された一実施形態による、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースのロボットインスペクタダイアログボックス(又は、検査ダイアログボックス)のスクリーンプリントである。
図3Gは、図示された一実施形態による、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースのワークスペースインスペクタダイアログボックスのスクリーンプリントである。
図3Hは、図示された一実施形態による、図2のプロセッサベースシステムによって提示されるグラフィカルユーザインターフェースの起点ポーズ設定ダイアログボックスのスクリーンプリントである。
図3Iは、図示された一実施形態による、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースのロードマップ領域ウィンドのスクリーンプリントであり、複数の起点ポーズを有する例示的なロードマップ領域を示す。
図3Jは、図示された一実施形態による、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースのスクリーンプリントであり、経路可視オプション(又は、経路表示オプション)が選択されたときの、現在のエッジの例示的なロボット、ワークスペース、および経路を示す。
図3Kは、図示された一実施形態による、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースのスクリーンプリントであり、例示的なロボット、ワークスペース、およびエッジを示している。
図4Aは、1つの例示の実施形態による、図1のロボットのための例示的なモーション計画グラフであって、対応する移行がロボットと環境内の1つ以上の障害物との間の衝突をもたらすであろうと判定された計画グラフのエッジを含む。
図4Bは、1つの例示の実施形態による、図1のロボットのための例示的モーション計画グラフであって、対応する移行がロボットと環境内の1つ以上の障害物との間の衝突をもたらすであろうと判定された計画グラフのエッジが除去されている。
図5は、1つの例示の実施形態による、プロセッサベースのシステムにおけるオペレーションの方法を示すフロー図である。
図6は、1つの例示の実施形態による、図5に示された方法を実行する際に使用され得る、プロセッサベースのシステムにおけるオペレーションの方法を示すフロー図である。
以下の説明においては、種々の開示の実施形態が正しく理解されるように、ある程度具体的に詳細を記載する。但し、当業者ならば、これら具体的な詳細の1つ以上を欠いても、または他の方法、他の構成部材、他の材料を用いても実施が可能であることは容易に理解するところであろう。他の例では、コンピュータシステム、アクチュエータシステム、および/または通信ネットワークに関連する周知の構造は実施形態の説明を不必要に曖昧にすることを避けるために、詳細には示されておらず、または説明されていない。他の例では実施形態の説明を不必要に曖昧にすることを回避するために、1つまたは複数のオブジェクトなどの知覚データおよびボリュメトリック表現を生成するための周知のコンピュータビジョン方法および技法は詳細には説明されていない。
本明細書及び特許請求の範囲において文脈上他に要求されない限り、用語「を有する(comprise)」及びそのヴァリエーション(comprises、comprising等)は、「含むが、それに限定されない(including, but not limited to)」として、確定していない(open)包括的な意味であるとみなされるべきである。
本明細書全体を通して、「一実施形態(one embodiment又はan embodiment)」とは実施形態に関連して説明された特定の特徴、構成または特質が少なくとも一実施形態に含まれることを意味し、したがって、本明細書全体を通して様々な箇所に「一実施形態(one embodiment又はan embodiment)において」という語句が現れることは必ずしもすべてが同じ実施形態を指すわけではない。さらに、特定の特徴、構造または特質は1以上の実施形態において任意の適当な方法で組み合わせられ得る。
本明細書および添付の特許請求の範囲で使用されるように、単数形「a」、「an」、および「the」は文脈上別段の明確な指示をしない限り、複数の指示対象を含む。また、用語「または」は文脈上別段の明確な指示をしない限り、「および/または」を含む意味で一般に使用されることにも留意されたい。
発明の名称及び要約は便宜上のものであり、本発明の範囲を表すものではなく、又は実施形態を意味するものでもない。
図1は、1つの例示としての実施形態による、ロボット102が動作し得る動作環境100を示す。簡潔にするために、本明細書では、動作環境100を環境100と呼ぶ。環境はロボット102が動作し、移動することができる二次元または三次元空間を表す。ロボット102はデカルト(Cartesian)、ロボットアセンブリ用選択的コンプライアンスアーム(SCARA)、円筒座標(cylindrical)、デルタ(delta)、極座標(polar)、および垂直関節型ロボットを含むが、これらに限定されない、任意のタイプのロボットであってもよい。また、ロボットは自律的に又は半自律的に(すなわち、少なくとも部分的には自律的に)作動し、環境100によって表される空間内を移動することができる自動車、飛行機、ドローン、又は任意の他の車両であってもよい。環境100はロボットが動作し、ロボットの「構成空間」(しばしば「C空間」と呼ばれる)とは異なり、ロボットの「構成空間」は図4Aおよび図4Bのモーション計画グラフに関して以下で参照され、「自動車および再構成可能な動作計画プロセッサのための動作計画」と題された2017年6月9日に出願された国際特許出願第PCT/US2017/036880号(その全体が参照により本明細書に組み込まれる)、ならびに「特定のロボット動作計画ハードウェアおよびその製造および使用方法」と題された2016年1月5日に出願された国際特許出願第WO2016/122840号(その全体が参照により本明細書に組み込まれる)に説明されているように、二次元または三次元空間である。構成空間は典型的には多くの次元(すなわち、三次元より大きい)である。特に、計画グラフの各ノードはロボットの特定の構成(ロボットの関節位置の特定のセットの完全な仕様である)、ロボットのポーズ、速度、および方位を含むことができるが、これらに限定されない、ロボットの状態を表す。計画グラフの各エッジは、ある状態から別の状態へのロボットの移行を表す。
図1を参照すると、環境100は、障害物衝突領域を含むことができる。これらの障害物衝突領域は環境100内の静的物体(例えば、ビン、コンテナ、柱、棚、建物、木、岩、家具)または動的物体(例えば、他のロボット、車両、人)によるものであり得る。例えば、障害物A 112および障害物B 104は、ロボット102が障害物A 112または障害物B 104のいずれかと同時に環境100内の同じ空間を占有しようとした場合に、ロボット102が障害物A 112または障害物B 104と衝突することが可能であるように、環境100内に衝突領域を作り出す物体を表す。様々な実施形態では、図1に示すオブジェクトよりも少ないオブジェクトまたは追加のオブジェクトがあってもよい。
さらに、ロボット自体の幾何学的形状、ならびにロボットの数、位置、および移動の自由度に基づいて、ロボットの移動またはポーズに課される運動学的制約が一般に存在する。
モーション計画に対する課題は比較的低コストであるが、非常に高速でモーション計画を実行する能力を含む。これに関与するのは、ロボット102が占有されていると考えられる空間および環境100内の障害物を効率的に表現し、伝達し、比較するための課題である。例えば、図1に示されるように、障害物A 112は、現在、ロボット102の前方にある。ロボット102が、ロボットアーム106のどの動作(およびロボット102の任意の動作)が障害物A 112との衝突をもたらすかを迅速かつ効率的に判定することができることは有利である。したがって、本開示はロボット102および1つまたは複数の障害物A 112によって占有される環境100内で動作する、自律車両を含むロボット102のためのモーション計画を可能にするために、モーション計画グラフ、ロードマップまたはラティスを生成する解決策を提供する。特に、エンドユーザは1つまたは複数のポーズを指定することができ、システムまたはアプリケーションは、有利には1つまたは複数の自律的に生成された追加のポーズ、およびポーズ間のエッジを自動的にまたは自律的に決定することができる。システム又はアプリケーションは、ポーズ及びエッジの運動学的検査及び衝突検査を自動的に又は自律的に実行することが有利である。
図1は代表的な環境100を示すが、典型的な環境は他のロボットに対応する物体、ならびに様々な他の自然または人工の静的および動的な物体および障害物を含む、多くの追加の物体および実体を含むことができる。本明細書で教示する概念は、図示したものよりも込み入った(又は、物の多い/populated)環境で同様に使用することができる。
図2および以下の説明は、例示された一実施形態による、様々な例示され説明されたモーション計画システムおよび方法が実施され得る、適切なプロセッサベースのシステム200の簡潔で一般的な説明を提供する。
必須ではないが、実施形態の多くはコンピュータまたはプロセッサ可読媒体上に記憶され、衝突評価およびモーション計画動作を実行することができる1つ以上のコンピュータまたはプロセッサによって実行されるプログラムアプリケーションモジュール、オブジェクト、またはマクロなどの、コンピュータ実行可能命令の一般的なコンテキストで説明される。そのようなモーション計画の動作は、計画グラフのエッジに関連するロボットの掃引ボリューム(又は、掃引体積/swept volumes)の1つまたは複数の離散化された(discretized)表現を生成することと、ロボット掃引ボリュームの離散化された表現を生成するためにいくつかの離散化(discretizations)のうちのどれを使用するかを決定すること、環境中の障害物を含む、ロボット102が動作することになる環境の離散化された表現を生成すること、環境の離散化された表現を生成するために、複数の離散化のうちのどれを使用するかを決定すること、複数の計画グラフを決定すること、決定された複数の計画グラフおよびエッジ情報のそれぞれのセットを記憶すること、計画グラフのノードによって表される状態の間を遷移する際にロボット102の少なくとも一部によって掃引されるボリュームを表す情報を生成すること、計画グラフのエッジに関する衝突評価を実行すること(又は、計画グラフのエッジでの衝突評価を実行すること)、計画グラフのためのエッジ情報のセットを提供すること、計画グラフから1つまたは複数の最適化された結果を識別すること、計画グラフのエッジに関連する掃引ボリュームの離散化された表現と、ロボット102が動作する環境内の障害物の離散化された表現との間の衝突に対して衝突検査を行うこと、最適化がロボット102のための衝突のない経路を生成するかどうかを判定すること、及び、ロボット102のためのモーション計画を実施することのうちの1つまたは複数を含むことができるが、それらに限定されない。
図1のロボット102は、図2に示すセンサ282などのセンサを有し、これはプロセッサ212aなどの1つまたは複数のプロセッサに知覚データを送る。知覚データは、どのボクセル又はボックス又は他の表現が現在の環境で占有されているかのストリームとして提供することができる。このデータは、占有グリッドまたは他のデジタル表現の形でプロセッサ212aなどの1つまたは複数のプロセッサによって生成される(または前記プロセッサに提供される)。特に、ロボットまたは環境100内の物体(例えば、障害物)のいずれかを表す場合、それらの表面をボクセル(3Dピクセル)または多角形(又は、ポリゴン)のメッシュ(しばしば三角形)のいずれかとして表すことができる。空間の各離散化された領域は、「ボクセル」と呼ばれ、3D(体積)ピクセルと等価である。場合によっては、代わりに物体をボックス(直角プリズム)として表すことが有利である。物体がランダムに成形されていないという事実のために、ボクセルがどのように構成されるかにはかなりの量の構造が存在することがあり、物体内の多くのボクセルは3D空間内で互いにすぐ隣り合っている。したがって、オブジェクトをボックスとして表すことは、はるかに少ないビットを必要とすることがある(すなわち、ボックスの2つの対向するコーナーについてのx、y、zデカルト座標だけを必要とすることがある)。また、ボックスに対して交差テスト(又は、インターセクションテスト/intersection tests)を行うことは、ボクセルに対して行うことに匹敵する複雑さである。
多くの実施形態は複数のセンサの出力を組み合わせることができ、センサは、非常に細かい粒度のボクセル化を提供することができる。しかし、ロボット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のようなプロセッサに、すべての障害ボクセル(またはボックス)をストリーミングすることによって実行される。例えば、障害物A 112及び障害物B 104を含む、環境100を表す障害物ボクセル(又はボックス)が、プロセッサ212aにストリームされて環境メモリ294に保存され得る。環境メモリ294は、プロセッサ212aのオンチップメモリである。いくつかの実施形態では、環境メモリ294がフィールドプログラマブルゲートアレイ(FPGA)内のブロックRAM(BRAM)であってもよい。ある実施形態では、BRAMが数キロビットのランダムアクセスメモリ(RAM)を含む専用の構成可能な2ポートメモリユニットであってもよい。FPGAは、これらのブロックのいくつかを含む。次に、ロボット102に対する計画グラフの各エッジに対するエッジ情報は計画グラフエッジ情報メモリ284からなど、計画グラフに充てられたオフチップメモリからストリーミングされる。エッジボクセル(またはボックス)ごとに、エッジの掃引ボリュームからストリーミングインされるとき、それが障害物ボクセル(またはボックス)のいずれかと衝突する場合、プロセッサ212aは、計画グラフ内のそのエッジとの衝突を判定する。
例えば、エッジボクセルが計画グラフのエッジxの掃引ボリュームからストリーミングインされるとき、プロセッサ212aは、エッジボクセルを環境メモリ294に記憶された全ての障害物ボクセル(又はボックス)と比較するためにブール回路を使用することができる。システム200が比較に基づいて、エッジボクセルが障害物ボクセル(またはボックス)のいずれかと衝突すると判定した場合、システム200は、エッジxとの衝突を記録する。この実施形態は、衝突評価が計画グラフのすべてのエッジ上で並行して実行される他の設計と比較して、衝突評価においてはるかに大きな計画グラフを使用することを可能にするので、衝突評価の技術を改善する。特に、これは、プロセッサチップ回路上に記憶することができる限られた量の計画グラフ情報に関する他の設計の欠点を克服するのに役立つ。本明細書で説明する衝突評価方法を使用すると、環境メモリ294などのオンチップ記憶装置は、多くの場合、すべての障害物ボックスを記憶するのに十分以上である(ボクセルを使用する場合はそれほどそうではない場合があるが)。これは、より安価なオフチップ記憶装置に大きな計画グラフおよび/または複数の計画グラフを記憶する能力を提供する。例えば、これは大きな計画グラフおよび/または複数の計画グラフを、いくつかの実施形態ではダイナミックランダムアクセスメモリ(DRAM)のような安価なタイプのメモリである計画グラフエッジ情報メモリ284に記憶する能力を提供する。
様々な実施形態では、そのような動作が完全にハードウェア回路で、またはシステムメモリ214などのメモリストレージに格納されたソフトウェアとして実行され、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)プロセッサ、プログラムドロジックコントローラ(PLC)、電気的プログラマブルリードオンリメモリ(EEPROM)などの1つまたは複数のハードウェアプロセッサ212aによって、またはメモリストレージに格納されたハードウェア回路およびソフトウェアの組合せとして実行され得る。
また、知覚、計画グラフ構築、衝突検出、および経路探索の様々な関連する態様の実施は、その全体が参照により本明細書に組み込まれる「自動車および再構成可能な動作計画プロセッサのための動作計画」と題された2017年6月9日に出願された国際特許出願第PCT/US2017/036880号、「特定のロボット動作計画ハードウェアおよびその製造および使用方法」と題された2016年1月5日に出願された国際特許出願第WO2016/122840号および「動的オブジェクトを有する環境における自動車の動作計画を容易にするための装置、方法、および物品」と題された2018年1月12日に出願された米国特許出願第62/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はまた、実行時中に起こり得るロボットの異なる可能な変化する寸法特性に対応する実行時前の一群の計画グラフを構築してもよい)。次に、システム200は、このような計画グラフを計画グラフエッジ情報メモリ284に記憶する。
実行時フェーズの間、センサ282は、プロセッサ212aに知覚データを送信する。知覚データは、現在の環境に存在し、オンチップ環境メモリ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つまたは複数は、また、または代わりに、例えば、1つ以上のパラレルケーブル、シリアルケーブル、または高速通信が可能なワイヤレスネットワークチャネル、例えば、ユニバーサルシリアルバス3.0、PCIe(Peripheral Component Interconnect Express)等の1つ以上の他の通信チャネルを介して、またはThunderbolt(登録商標)を介して、互いに通信することも可能である。
プロセッサベースのシステム200はまた、ネットワークインターフェース260を介してプロセッサベースのシステム200の様々な構成要素に直接通信可能に結合されたまたは間接的に通信可能に結合されたリモートシステム、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ウルトラポータブルコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルコンピュータ(図示せず)に通信可能に結合されてもよい。このような遠隔システムは、プロセッサベースのシステム200およびプロセッサベースのシステム200内の様々な構成要素とのプログラミング、構成、制御、または他の方法でのインターフェースまたは入力データに使用することができる。このような接続はインターネットプロトコルを使用する1つ以上の通信チャネル、例えば、インターネット等の1つ以上のワイドエリアネットワーク(WAN)を介してもよい。上述したように、実行前計算(例えば、計画グラフのファミリの生成)はロボット102または他のロボットとは別個のシステムによって実行することができ、一方、システム200がロボット102の物理的寸法の変化にリアルタイムで反応するように計画グラフを変更することができることが重要であるため、実行時計算は、ロボット102上にあるプロセッサ212上で実行することができる。
別段の記載がない限り、図2に示される様々なブロックの構造および動作は従来の設計のものであるか、またはその全体が参照により本明細書に組み込まれる「自動車および再構成可能な動作計画プロセッサのための動作計画」と題する2017年6月9日出願の国際特許出願第PCT/US2017/036880号、「特定のロボット動作計画ハードウェアおよびその製造および使用方法」と題する2016年1月5日出願の国際特許出願第WO2016/122840、および/または「動的オブジェクトを有する環境における自動車の動作計画を容易にするための装置、方法、および物品」と題する2018年1月12日出願の米国特許出願第62/616,783号に記載されている。その結果、そのようなブロックは参照により本明細書に組み込まれる参考文献を考慮して、当業者によって理解されるように、さらに詳細に説明される必要はない。
プロセッサベースのシステム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の離散化された表現を生成すること、環境100の離散化された表現を生成するためにいくつかの離散化された表現のどれを使用するかを決定すること、複数の計画グラフを決定すること、決定された複数の計画グラフおよびエッジ情報のそれぞれの組を記憶すること、計画グラフのノードによって表される状態の間を遷移する際にロボットの少なくとも一部によって掃引されるボリュームを表す情報を生成すること、計画グラフのエッジに関する衝突評価を実行すること、計画グラフのためのエッジ情報のセットを提供すること、計画グラフから1つまたは複数の最適化された結果を特定すること、計画グラフのエッジとロボット102が動作する環境100内の障害物の離散化された表現に関連する掃引ボリュームの離散化された表現の間の衝突に対し衝突検査を行うこと、最適化がロボットのための衝突のない経路を生成するかどうかを決定すること、およびロボットのためのモーション計画を実施することのうちの1つまたは複数を実行させる命令を含むことができる。アプリケーションプログラム238は本明細書および参照により本明細書に組み込まれる参照文献に記載されるように、プロセッサ212に(センサ282を介して)知覚、計画グラフ構築、衝突検出、および経路探索の他の動作を実行させる1つまたは複数の機械可読命令をさらに含むことができる。
アプリケーションプログラム238はさらに、プロセッサ212に、ロボット102が異なる寸法を有するときに対応する状態間の遷移においてロボット102によって掃引される異なるボリュームを表す計画グラフエッジ情報のそれぞれのセットを生成させ、計画グラフエッジ情報のそれぞれのセットに対応して計画グラフエッジ情報メモリ284に複数の計画グラフを記憶させる、1つまたは複数の機械可読命令を含むことができる。
アプリケーションプログラム238はさらに、プロセッサ212に、ロボット102が動作する環境100の第1の離散化された表現の少なくとも一部分について、環境100の第1の離散化された表現の少なくとも一部分を環境メモリ294に供給させ、格納させ、計画グラフの各エッジに対して、計画グラフエッジ情報メモリ284内にエッジ情報のそれぞれのセットを提供させ、格納させ、対応する遷移がロボット102の少なくとも一部分と、環境100内の障害物A 112および障害物B 104などの1つ以上の障害物の少なくとも1つの少なくとも一部分との間の衝突をもたらす計画グラフのエッジのいずれかを特定させる1つ以上の機械可読命令を含むことができる。
「環境」という用語は本例では障害物を含むロボットの現在のワークスペースを指すために使用される。「タスク」という用語は本例ではロボット102がその環境内の障害物と衝突することなく、ポーズAからポーズBに到達しなければならない(おそらく、何かを把持または落とす)ロボットタスクを指すために使用される。「シナリオ」という用語は本例では環境/タスク対のクラスを指すために使用される。例えば、シナリオは「3フィートのテーブルを有する環境内での所与の範囲内のサイズおよび形状を有するx障害物とy障害物との間でのピックアンドプレースタスク」とすることができる。このような基準に適合する多くの異なるタスク/環境対が、目標の位置、障害物のサイズおよび形状に応じて存在し得る。システム200は、ネットワークインターフェース260を介して通信ネットワークを介してリンクされる1つ以上の遠隔処理装置を含んでもよい。そのような1つまたは複数のリモート処理デバイスはシステム200に、様々な異なるシナリオのタスクおよび環境の対に対してロボット102が動作する環境100の表現のそれぞれの離散化を生成させる、1つまたは複数の機械可読命令を実行することができる。例示的な実施形態では、それぞれの離散化のうちの少なくとも2つはボクセルのそれぞれのセットを含む。それぞれの離散化のボクセルは、それぞれの離散化内のサイズおよび形状のうちの少なくとも1つにおいて非均質(non-homogenous)であってもよい。また、それぞれの離散化のボクセルの不均一性のそれぞれの分布は、互いに異なっていてもよい。特に、離散化はそれぞれのボクセルのセットを含むことができ、それぞれの離散化のうちの少なくとも2つのボクセルはそれぞれの離散化内でサイズおよび形状のうちの少なくとも1つにおいて不均質であり、それぞれの離散化のうちの少なくとも2つのボクセルの不均質性のそれぞれの分布は互いに異なる。アプリケーションプログラム238はプロセッサ212に、ロボットが動作する環境100の表現の生成されたそれぞれの離散化の有効性を評価させ、特定のシナリオに対して最も有効であると評価される生成されたそれぞれの離散化を記憶させる、1つまたは複数の機械可読命令を含むことができる。
アプリケーションプログラム238はロボット102が実行するタスクとロボットが動作する環境100のペアを分類する特定(又は、識別)されたシナリオに基づいて、プロセッサ212に、ロボット102の1つの状態とロボット102の別の状態との間で遷移するときにロボット102が通過するそれぞれの領域を表すいくつかの掃引ボリュームを生成するために、いくつかの離散化のうちのどれを使用するかを決定させ、計画グラフ内の複数のエッジのそれぞれについて、決定された離散化を使用してエッジのそれぞれの掃引ボリュームを決定させる、1つまたは複数の機械可読命令をさらに含むことができる。アプリケーションプログラム238はさらに、プロセッサ212に、識別されたシナリオに対して最も有効であると評価される、ロボット102が動作することになる環境100の表現の決定された掃引ボリュームのそれぞれの離散化を記憶させる、1つまたは複数の機械可読命令を含むことができる。
アプリケーションプログラム238はロボット102が動作する環境100とロボット102が実行するタスクのペアを分類する識別されたシナリオに少なくとも部分的に基づいて、プロセッサ212に、環境100の離散化表現を生成するためにいくつかの離散化のうちのどれを使用すべきかを決定させる、1つまたは複数の機械可読命令をさらに含むことができる。アプリケーションプログラム238はさらに、プロセッサ212に、環境100を感知する1つまたは複数のセンサ282によって生成されたセンサ情報を受信させ、判定された離散化を使用して環境内に障害物がある場合にはそれを含む環境の離散化表現を生成させる1つまたは複数の機械可読命令を含むことができる。決定された離散化の複数のボクセルはそれぞれの離散化内の(又は、離散化内で)サイズおよび形状のうちの少なくとも1つにおいて不均質であってもよく、決定された離散化のボクセルの不均質性のそれぞれの分布はいくつかの離散化のうちの別の1つのボクセルの不均質性の分布と異なってもよい。
アプリケーションプログラム238はさらに、プロセッサ212に、ロボットが動作する環境内の任意の障害物と計画グラフのエッジの間の複数の計画グラフの衝突検査を実行させる1つまたは複数の機械可読命令を含むことができる。プロセッサ212は各計画グラフに対してこのような衝突検査を実行し、それに応じて計画グラフを一時的に更新し、最適化を実行し、更新された計画グラフからの最適化された結果(もしあれば)が満足条件を満たすかどうかを判定することができる。満足条件が満たされない場合、プロセッサ212は次の計画グラフに移動し、同じ動作を実行してもよい。満足条件が満たされる計画グラフが見つかると、プロセッサ212は、満足条件を満たす計画グラフからの最適化された結果のうちの1つによって識別される遷移をロボット102に適用する。
アプリケーションプログラム238はさらに、プロセッサ212に、図5および図6に示される方法を含むがこれに限定されない、本明細書で説明される様々な他の方法を実行させる1つまたは複数の機械可読命令を含むことができる。
様々な実施形態では上述の動作のうちの1つまたは複数がシステム200の1つまたは複数のリモート処理デバイスによって実行することができ、これらのデバイスはネットワークインターフェース260を介して通信ネットワークを介して、またはロボット102上に配置された1つまたは複数のプロセッサ212によってリンクされる。
図2にはシステムメモリ214に記憶されるように示されているが、オペレーティングシステム236、アプリケーションプログラム238、他のプログラム/モジュール240、およびプログラムデータ242はディスクドライブ224の関連するコンピュータ可読媒体226上に記憶することができる。
プロセッサ212は、1つまたは複数の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などの任意の論理処理装置とすることができる。市販のコンピュータシステムの非限定的な例としては米国Intel(登録商標)社が提供するマイクロプロセッサのCeleron、Core 2、Itanium、Xeonファミリ、米国Advanced Micro Devicesが提供するK8、K10、Bulldozer、およびBobcatシリーズマイクロプロセッサ、米国アップルコンピュータが提供するA5、A6、およびA7シリーズマイクロプロセッサ、米国Qualcomm、Inc.が提供するSnapdragonシリーズマイクロプロセッサ、米国Oracle Corp.が提供するSPARCシリーズマイクロプロセッサが挙げられるが、これらに限定されない。別途記載されない限り、図2に示される種々のブロックの構成およびオペレーションは、従来の設計のものである。その結果、そのようなブロックは当業者によって理解されるので、本明細書でさらに詳細に説明される必要はない。
したがって、衝突の回避を容易にするために、設計時(実行時の前)に、1つまたは複数の計画グラフがシステム200によって生成され、1つの状態から別の状態への様々な遷移を行うときに、ロボット102によってどの領域が占有されるかが判定される。例えば、ロボット102のための計画グラフのエッジは、領域302に対応するロボット102によって掃引される3D空間内のボリュームに対応するいくつかの数のボクセル(またはボックス)を有する。計画グラフの対応する遷移を行うときの領域に対応するロボット102によって掃引されるボクセルまたはボックスは、計画グラフエッジ情報メモリ284などの、計画グラフに専用のオフチップメモリに計画グラフのエッジに対応するものとして記憶することができる。次に、実行時に、障害物A 112(および障害物B 104も)を含む環境100を表す障害物ボクセル(またはボックス)が占有グリッドまたは他の表現の形でプロセッサ212aに提供され(たとえば、ストリーミングされ)、オンチップ環境メモリ294に記憶される。システム200は(占有グリッドまたは他の表現に基づいて)どのボクセルが占有されているかを決定し、現在占有されているボクセルと衝突する動きを使用しないことを決定する。特に、エッジの掃引ボリュームの一部を表すそれぞれのエッジボクセル(またはボックス)について、それが計画グラフエッジ情報メモリ284からストリームイン(又は、流入/stream in)されるとき、プロセッサは、占有グリッドまたは他の表現に基づいて、環境メモリ294に記憶されている障害ボクセル(またはボックス)のいずれかと衝突するかどうかを決定する。エッジボクセル(またはボックス)が障害物ボクセル(またはボックス)のいずれかと衝突する場合、システム200は計画グラフ内のそのエッジとの衝突を判定し、計画グラフ内のそのエッジに関連するロボット102の動作を使用しないと判定する。
例えば、図1に示すロボットアーム106の運動を実行する前に、システム200は、計画グラフエッジメモリ284から適用可能な計画グラフの全てのエッジのエッジボクセル(又はボックス)をストリームインし始める。各エッジについて、プロセッサ212aは各エッジボクセル(又はボックス)に遭遇するとき、任意のエッジボクセル(又はボックス)が環境メモリ294(障害物A 112のためのものを含む)に記憶された障害ボクセル(又はボックス)のいずれかと衝突するかどうかを検査する。環境メモリ294に格納された障害物A 112の障害物ボクセル(またはボックス)は占有グリッドまたは他の表現に従ってその同じ領域を占有するので、掃引領域内の任意のエッジボクセル(またはボックス)はそのような衝突をもたらすことになる。プロセッサ212aは障害物ボクセル(又はボックス)のいずれかと衝突するエッジボクセル(又はボックス)に遭遇するとすぐに、その後、プロセッサ212aは、計画グラフのそのエッジを使用しないことを決定する。計画グラフのエッジの処理が終了すると、プロセッサ212aは、環境メモリ294に記憶された障害物ボクセル(またはボックス)と衝突すると判定されなかった残りのエッジを使用して、ロボットを初期位置から目標位置に移動させる計画グラフ内の経路を決定する。
システム200はまた、各計画グラフによって表される掃引ボリュームをどのように表すか、ならびに環境100内の障害物をどのように表すかに関する決定を行うことができる。そのような決定は例えば、掃引ボリュームをボクセルまたはボックスで表すかどうか、使用するボクセルまたはボックスの形状およびサイズ、使用するボクセルまたはボックスのサイズおよび/または形状が不均一である離散化を使用するかどうか、およびどのシナリオでボクセルまたはボックスの異なる形状および/またはサイズを使用するかなど、どのように離散化を実行すべきかに関してプロセッサ212aによって行われる決定を含むことができる。様々な実施形態では計画グラフのそれぞれによって表される掃引ボリュームをどのように表すか、ならびに環境100内の障害物をどのように表すかに関する決定を行うための上述の1つまたは複数のそのような動作はネットワークインターフェース260を介して通信ネットワークを介してリンクされるシステム200の1つまたは複数のリモート処理デバイスによって、またはロボット102上に位置する1つまたは複数のプロセッサ212によって実行され得る。
特に、システム200は、ロボット102のワークスペースをボクセル(後でボックスにグループ化することができる)に離散化することを決定することができる。1つの例示的な実施形態は、三次元の各々において均一な量子化(又は、量化/数量化/quantization))を実行する。しかしながら、ロボットのワークスペースの異なる部分においてより小さい/より大きいボクセル及び/又は非立方体形状のボクセルを有することが有利であり得る。例えば、一実施形態はロボット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の目標を達成するための何らかの衝突のない経路を見出すことができる)タスクの割合および見出される経路の質に関する基準を含んでもよい。
モーション計画グラフまたはロードマップツールキットはモーションプランナ(例えば、リアルタイムロボットモーション計画アクセラレータおよびRapidSense Spatial Perceptionシステム)によって使用されるモーション計画グラフ(本明細書では互換的にロードマップまたはロードマップファイルと呼ばれる)の作成または生成を可能にする。モーション計画グラフツールキットは、1つ以上の非一時的コンピュータまたはプロセッサ可読媒体に記憶される一セットのプロセッサ実行可能命令またはアプリケーション(例えば、ソフトウェアおよび/またはファームウェア)として実施される。モーション計画グラフツールキットは、直感的なユーザインターフェース、例えば直感的なグラフィカルユーザインターフェース(GUI)を提供する。このアプリケーションにより、エンドユーザは、ロボットのデジタルモデルまたは仮想モデルと、ロボットが動作する動作環境(本明細書では互換的にワークセルと呼ぶ)のデジタル表現または仮想表現と対話して、運動学的に検査され、衝突検査されたモーション計画グラフまたはロードマップを生成または作成することができる。
システム、アプリケーション、ユーザインターフェース、およびオペレーションの理解を容易にするために、最初に、高レベル概念のいくつかの概要をすぐ下に提供する。
プロジェクトは、モーション計画グラフ又はロードマップツールキットにおける最上位のコンテナ(又は、容器)である。各プロジェクトは、名前付きワークスペースのセット、ハブのセット、ロードマップ領域のセット、およびボクセル領域を含む。
ワークスペースは、環境内のロボットのある物理的構成を表す。周囲の作業セルまたはそれ自体との異なる衝突の可能性をもたらすロボットの物理的構成に対するいかなる修正も、別個のワークスペースと見なされるべきである。したがって、環境内のすべての障害物が固定されたままであっても、第1のワークスペースの物理的特性からのロボットの物理的特性の変化は、別個の第2のワークスペースに対応する。
ワークスペースには、それぞれ独自のロードマップ領域のセットがある。ワークスペースは、異なるワークスペースにわたって同じ領域をクローニングするために複製されてもよいことに留意されたい。モーション計画グラフやロードマップツールキットで作業している間、「アクティブワークスペース」という概念がある。これは、現在、モーション計画グラフやロードマップツールキットによって提供されている三次元ビューで視覚化されているワークスペースである。各ワークスペースは、最上位プロジェクトで定義されたすべての「ハブ」も継承し、各ロードマップ領域が他の領域やハブにどのように接続するかの設定が含まれる。この設定は、補間マトリクス(行列)と呼ばれる。エッジを生成するとき、各ロードマップ領域はこれらの設定に基づいて、他の領域およびハブと同様に、内部的に接続される。ワークスペースはまた、ロボットまたは静的シーン内のリンクの対が互いに衝突検査される設定を含む。この設定のセットは、衝突マトリクスと呼ばれる。プロジェクトで定義されているワークスペースごとに、ユーザはシステムまたはアプリケーションに「Occupancy Group」または*.ogファイルを生成させ、リアルタイムロボティックスモーション計画アクセラレータ(MPA)などで実行時に使用する。
ボクセル領域は、システムによって使用されるカメラの視野を表す。MPAは動的障害物がこの領域にある場合にのみ、動的障害物を検査および/または回避する。ボクセル領域内に存在する任意のポーズまたはエッジは「ボクセル化」され、すなわち、ロボットがポーズで取る物理的空間(またはエッジモードである場合、エッジ内のすべての中間ポーズのセット)が計算され、ボクセルとして保存される。各エッジのボクセルの集合は実行時中の衝突検査のためにMPAハードウェアに送信される「占有グループ」ファイルに保存される。
ロードマップ領域は、ポーズのグルーピング(又は、グループ)である。エッジを生成するとき、ロードマップ領域内のすべてのポーズは補間マトリクス内の設定に基づいて、ネットワーク内の他の領域およびハブと同様に、互いに接続される。ロードマップ領域の寸法、密度、および位置を構成することができる。ロードマップ領域内のすべてのポーズは、ロードマップ領域を作成または修正するときに指定される起点ポーズと呼ばれる、ロボットの様々な構成でシード(又は、導入/seed)される。
ハブはすべてのワークスペースで共有されるロボットの特定のポーズである。デフォルトでは、すべてのロードマップ領域がすべてのハブに接続される。ハブはホームポーズを指定したり、複数のロードマップ領域間の接続性を強制したりする場合に便利である。
可動付属肢を有するロボットを扱う場合、ポーズは、ロボットの特定の関節構成と組み合わされた三次元空間におけるエンドエフェクタの特定の点である。自律車両を扱う場合、ポーズは自律車両の三次元空間における特定の点と方向である。ポーズはロボットの関節が特定の関節構成にあるとき、ロボットのエンドエフェクタが三次元空間のどこにあるかを記述する回転成分と共に、x、y、z変位を有する。ポーズは、ロボットアームがそれ自体または静的ワークスペース内の他の物体と衝突することなく、空間内のその点に到達することができる場合に有効である。衝突するか、または運動学的に実行不可能なポーズは無効とみなされ、視覚的に示され得る(例えば、赤で表示される)。
エッジは任意の2つのポーズ間の接続であり、2つの関連するポーズ間の遷移を表す。また、エッジは、補間タイプを有する。モーション計画グラフまたはロードマップツールキットは、ジョイント補間およびデカルト補間をサポートする。ジョイント補間モードでは、終点ジョイント構成間のロボットのジョイント空間で直線補間することにより、動作を計算する。デカルト補間モードでは、自律的に生成された付加ポーズの離散集合で、2つの終点フレーム間の三次元空間で補間することにより、動作を計算する。
いずれの補間モードにおいても、エッジは有効であっても無効であってもよい。ポーズの場合と同様に、エッジはその任意の部分が運動学的に実行不可能であり、かつ/または衝突している場合には、無効にされる。
衝突パーツ(又は、衝突部分/衝突部品)は、ロボットまたはモデル化された環境またはシーンの任意の位置に取り付けることができる単純な境界形状である。通常、衝突パーツは、ロボットがオブジェクトをピック(又は、把持)または配置したときのコリジョンボリュームの変化を表すために使用される。衝突パーツはまた、所望であれば、任意のキープアウトゾーンを生成するために使用され得る。
衝突マトリクスは、ポーズおよびエッジを生成するときに衝突について検査されるべき「ユニバーサルロボット記述フォーマット」(URDF)リンクのペアのセットを定義する。2つのものが決して衝突しない場合、そのもののペアを検査から除去することができ、これにより、より高速なエッジ生成が可能になる。ワークスペースごとに1つの衝突マトリクスがあり、システムまたはアプリケーションのパフォーマンスが向上する。
補間マトリクスは、各ロードマップ領域が他の領域およびハブにどのように接続するかを定義する。各接続のオプションは、ジョイント補間、デカルト補間、または接続されていない。
モーション計画グラフまたはロードマップツールキットは、ロボットオペレーティングシステム(ROS)と協働することができる。ROSはロボットミドルウェア(すなわち、ロボットソフトウェア開発のためのソフトウェアフレームワークの集合)である。また、マクロを用いてもよい。たとえば、モーション計画グラフやロードマップツールキットは、ROSで使用されるパッケージの構築(ビルド)に使用されるCMakeマクロと関連コードの集合であるCatkinで機能する場合がある。
次に、図3A~図3Kに示す様々なユーザインターフェース要素を参照して、オペレーションを説明する。
モーション計画グラフまたはロードマップの作成を開始するために、プロセッサベースのシステムまたはプロセッサベースのシステムで実行されるアプリケーションが、多数のユーザインターフェース要素を介して多数の初期入力仕様を受け取る。
例えば、プロセッサベースのシステムまたはアプリケーションは、ロボットの記述またはデジタルモデルを、例えばデジタルファイルとして受信することができる。モデル化されるロボットについて、このファイルは、視覚メッシュ、衝突メッシュ、および運動学を定義する。デジタルモデルは、手動で作成することも、コンピュータ支援設計(CAD)アプリケーション(ソフトウェアやファームウェアなど)からのエクスポートプロセスを介して作成することもできる。ロボットの記述は、標準化されたフォーマット、例えばURDFを使用して提供されてもよい。例えば、SolidWorks(登録商標)アセンブリをURDFファイルに変換する市販のプラグインがある。
また、例えば、URDFファイルがROSパッケージへのリンクを含む場合、プロセッサベースのシステムまたはアプリケーションは、ROSパッケージへのパス仕様をオプションで受け取ることができる。ROS_PACKAGE_PATHは、catkinワークスペース内のROSパッケージへのすべての可能なパスを含む環境変数である。この変数を使用すると、プロセッサベースのシステムまたはアプリケーションがURDFファイルを正常に見つけて解析できる。
また、例えば、プロセッサベースのシステムまたはアプリケーションは、URDF規格に含まれていないロボットに関する追加情報を含むファイルをオプションで1つ以上受け取ることができる。追加情報は標準フォーマット、例えば、「SRDF(Semantic Robot Description File)」フォーマットで受信されてもよい、追加情報の1つは、例えば、URDF内のどのリンクが互いに衝突検査されるべきかを定義する「衝突マトリクス」であってもよい。このファイルは、プロセッサベースのシステムまたはアプリケーションにインポートして、ポーズおよびエッジの妥当性を検査するためにプロセッサベースのシステムまたはアプリケーションによって使用される衝突マトリックスを抽出することができる。
図3Aは、記述された一実施形態による、先験的にモーション計画グラフを生成するために図2のプロセッサベースシステムによって最初に提示されるグラフィカルユーザインターフェースの第1の画面300aを示す。図3Bは、記述された一実施形態による、図2のプロセッサベースのシステムによって2回目に提示されるグラフィカルユーザインターフェースの第1の画面300bを示す。
第1の画面300aは4つのプルダウンメニュー、すなわち、ファイルメニュー302a、編集メニュー302b、カメラメニュー302c、およびヘルプメニュー302dを含むメニューバー302を含む。第1のスクリーン300aは、また、ロボットモデル305及び動作環境又はワークスペース307の三次元表現が提示されるプレゼンテーションウィンド304を含む。第1の画面300aはプレゼンテーションウィンド304に隣接し、情報を提供するか、またはユーザ入力の入力または選択を可能にする様々なユーザインターフェース要素を含む1セットのパネルをさらに含む。パネルは例えば、プロジェクトパネル306、インスペクタパネル308、ビューコントロールパネル310、およびコンソールパネル312を含むことができる。
(ファイルメニュー)
ファイルプルダウンメニュー302は、ファイルに関連する多くのユーザ選択可能なオプションを提供する。
例えば、エンドユーザは、ファイルプルダウンメニュー302aから新規プロジェクトメニュー項目を選択することができる。ファイルプルダウンメニュー302aからの新規プロジェクトメニュー項目の選択に応答して、システムまたはアプリケーションは、「新規プロジェクト」ダイアログボックス314を提示することができる。
新規プロジェクトダイアログボックス
図3Cは、例示の一実施形態による、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースの新規プロジェクトダイアログボックス314を示す。
新規プロジェクトダイアログボックス314は、ユーザに新規プロジェクトを作成するように促す。新規プロジェクトダイアログボックス314は、プロジェクトのディレクトリ名となる名前を入力するための「プロジェクト名」フィールド314aを提供する。新規プロジェクトダイアログボックス314はプロジェクトが作成されるディレクトリを入力するための「プロジェクトパス」フィールド314bを提供する。新規プロジェクトダイアログボックス314は、使用するURDFまたは*.xacroファイルへのパスを入力するための「URDFパス」フィールド314cを提供する。新規プロジェクトダイアログボックス314は「ROSパッケージパス」フィールド314dを提供して、URDFがそのような名前を使用する場合、ファイルパスを指定するための「package://」プレフィックスを入力する。これは、これらの最上位ディレクトリへのパスを指定するために使用できる。新規プロジェクトダイアログボックス314はそれぞれプロジェクトパスフィールド314b、URDFパスフィールド314c、およびROSパッケージパス314dに対応するユーザ選択可能なブラウザアイコン314e、314f、314gのセットを提供し、ユーザはそれぞれのフィールドに対して適切な入力をブラウザで選択することができる。
新規プロジェクトダイアログボックス314は「キネマティックチェーン開始」フィールド314hを提供し、キネマティックチェーン(又は、動力学チェーン/一連の動力学処理)が開始するURDFからのロボットリンクを指定する。指定されたリンクには、可動の親ジョイントがあってはならない。特に、キネマティックチェーン開始フィールドは、選択するリンクのスクロール可能なリストを提供することができる。新規プロジェクトダイアログボックス314は、キネマティックチェーンが終了する場合にURDFからのロボットリンクを指定するためのキネマティックチェーン終了フィールド314iを提供する。このリンクはキネマティックチェーンスタートの子であるべきであり、子として可動ジョイントを有さないべきである。衝突検査が可能になるためには、ロボット内の各可動ジョイントが各ポーズに対して完全に分かっている必要がある。
ファイルメニュー
図3A及び3Bに戻ると、ファイルプルダウンメニュー302aはユーザ選択可能な「Load Project」メニューアイテムを含むことができ、その選択によりシステム又はアプリケーションは既存のプロジェクトをロードする。ファイルプルダウンメニュー302aがユーザ選択可能な「Save Project」メニューアイテムを含むことができ、その選択によりシステム又はアプリケーションは現在のプロジェクトを同じ場所に保存する。ファイルプルダウンメニュー302aがユーザ選択可能な「Save Project As」メニューアイテムを含むことができ、その選択によりシステム又はアプリケーションは現在のプロジェクトを新しい場所に新規事例(又は、インスタンス)として保存する。ファイルプルダウンメニュー302aはユーザ選択可能な「Load Scene Snapshot」メニューアイテムを含み、その選択によりシステムまたはアプリケーションはrtr-apiから生成したスナップショットをプレゼンテーションウィンド304に表示のためにロードする。ファイルプルダウンメニュー302aはユーザ選択可能な「Export Configs」メニューアイテムを含むことができ、その選択によりシステム又はアプリケーションはアクティブなワークスペースのすべての有効なジョイント構成をエクスポートする。ファイルプルダウンメニュー302aはユーザ選択可能な「Export Edges」メニューアイテムを含むことができ、その選択によりシステム又はアプリケーションはアクティブなワークスペースのすべてのエッジをエクスポートする。ファイルプルダウンメニュー302aはユーザ選択可能な「Export Poses」メニューアイテムを含むことができ、その選択によりシステム又はアプリケーションはアクティブなワークスペースのすべてのポーズをエクスポートする。
引き続き図3Aおよび図3Bを参照すると、「edit」プルダウンメニュー302bはユーザが「設定」メニューを選択することを可能にし、「設定」メニューは、プロジェクト設定およびワークスペース設定のためのユーザ選択可能なオプションを提供する。
プロジェクト「設定」はユーザが自動ポーズ検証を設定(例えば、トグル)することを可能にする。自動ポーズ検証設定は、ロードマップ領域またはハブに対する何らかの変更がシステムまたはアプリケーションがポーズを自動的に再計算することになるかどうかを判定する。このプロセスはバックグラウンドで行われる。ユーザは、非常に大きな動作計画グラフまたはロードマップを用いて作業する場合、自動ポーズ検証を無効にしたい場合がある。
プロジェクト設定により、ユーザは起点ポーズが領域と共に回転するか否かを設定(例えば、トグル)することができる。領域と共に回転する起点ポーズの設定は、ロードマップ領域の回転がどのようにオペレートされるかを決定する。領域と共に回転する起点ポーズの設定が無効にされる場合、ロードマップ領域内のポーズの向きは、世界に対して固定されたままである。領域と共に回転する起点の設定が有効であれば、それらの方向は全体として領域とともに回転する。
ワークスペース設定により、ユーザはキネマティックチェーンを設定することができる。キネマティックチェーン設定は、システムが衝突検査ポーズ計算のために使用するキネマティックチェーンを設定する。このチェーンは、一旦設定されると編集できない。キネマティックチェーン設定を変更するために、エンドユーザは新しいプロジェクトを作成する。ワークスペース設定では、URDF内のどのリンクが互いに衝突検査されるかをエンドユーザが設定(configure)できる。したがって、エンドユーザは物理的位置またはジョイント制限の制約のために、決して衝突しないリンク間の衝突検査を無効にすることを選択することができ、有利には処理時間を短縮する。設定(configuration)は、衝突マトリクスを介して実施することができる。
エンドユーザは、例えば「import SRDF」ユーザインターフェース要素を介して、システムまたはアプリケーションにSRDFファイルから衝突マトリクスをインポートさせることができる。
エンドユーザはシステムまたはアプリケーションに、「補間タイプマトリックス」ユーザインターフェース要素を介して、モーション計画グラフまたはロードマップが互いにどのように接続するか、および/またはハブにどのように接続するかを定義させることができる。利用可能なオプションは、JOINT、CARTESIAN、またはNOT CONNECTEDを含むことができる。
1つまたは複数のタブにより、エンドユーザは、URDF内の任意のリンクの任意の位置に取り付けることができる様々な部品を作成することができる。システムまたはアプリケーションは、衝突検査を実行するときにこれらの部分を使用する。部品は様々な形態、例えば、ボックス、球、または円筒のいずれかをとることができ、部品ライブラリとして格納することができる。部品のサイズは、エンドユーザによって指定または調整することができる。
カメラ/ビューポイントメニュー(Camera/Viewpointメニュー)
カメラまたはビューポイントメニュー302cはユーザがビューを切り替えること、例えば、パースペクティブビューモードとオルソグラフィックビューモードとの間で切り替えることを可能にする。あるいは、三次元ビューに提示される1セットの軸の中心にある立方体(右上隅に位置する)を選択(例えば、クリック)して、カメラ設定間で切り替えることができる。
ヘルプメニュー
ヘルププルダウンメニュー302dを選択すると、ユーザが選択できる各種ヘルプメニューを備えたヘルプメニューが表示される。
プレゼンテーションウィンド
プレゼンテーションウィンド304は、ロードされたロボットワークセルの三次元ビューを提供する。エンドユーザはプレゼンテーションウィンド304内でパンし、軌道を描き(orbit)、ズームすることができる。ハブ、ロードマップ領域、ポーズ、エッジ、およびボクセル領域はすべてプレゼンテーションウィンド304内に視覚化される。オブジェクト(例えば、ロボット)を選択する(例えば、クリックする)と、選択されたオブジェクトが作成される。
プレゼンテーションウィンド304で利用可能なツールを使用して、ロボットモデル305および任意のロードマップ領域の両方を操作するいくつかの異なる方法がある。
プレゼンテーションウィンド304は「FKパネル」ユーザ選択可能アイコン304aを含み、その選択によりFKパネルのプレゼンテーションが行われる。FKパネルはエンドユーザが関節角度を入力として指定することを可能にし、システムまたはアプリケーションは三次元空間におけるロボットの対応する位置を決定し、ロボットの対応する三次元位置を提示するであろう。
プレゼンテーションウィンド304は「IKパネル」ユーザが選択可能なアイコン304bを含み、その選択はIKパネルのプレゼンテーションを引き起こす。IKパネルはエンドユーザがロボットの少なくとも一部(例えば、エンドエフェクタ)の位置を三次元で指定することを可能にし、システムまたはアプリケーションはロボットの対応する関節角度を決定して、ロボットの一部を三次元空間内に位置決めし、対応する関節角度を提示する。
また、「FKパネル」と「IKパネル」は単にC空間と三次元空間または実世界空間との間を平行移動するだけであり、「FKパネル」と「IKパネル」は、エンドユーザがエンドエフェクタの並進および/または回転を微調整することを可能にする。各調整の増分は変更可能である。現在の位置が「世界」基準フレーム内、または任意の定義されたロードマップ領域の基準フレーム内で見ることができる。
プレゼンテーションウィンド304は、並進ウィジェット304cを含む。どの項目が選択されるかに応じて、システムまたはアプリケーションは並進ウィジェット304cを、ロボットのエンドエフェクタに、またはロードマップ領域またはボクセル領域の起点に出現させる。並進ウィジェット304cはエンドユーザが例えば、ポインタまたはカーソルを位置決めし(例えば、マウスオーバーし)、対応する軸上で選択する(例えば、クリックする)ことによって、選択されたアイテムを三次元(x、y、またはz軸)でドラッグすることを可能にする。翻訳ウィジェット304cはユーザが選択可能な(例えば、「T」ボタン)の選択(クリック)によって有効/無効にすることができる。
プレゼンテーションウィンド304は、回転ウィジェット304dを含む。どのアイテムが選択されるかに応じて、システムまたはアプリケーションは回転ウィジェット304dをロボットのエンドエフェクタに、またはロードマップ領域の起点に出現させる。回転ウィジェット304dは、エンドユーザが、選択されている間に、対応する軸の周りを選択(例えば、クリック)およびドラッグすることによって、選択されたアイテムを3つの軸(x、y、またはz軸)の周りで回転させることを可能にする。回転ウィジェット304dはユーザが選択可能なアイコン(例えば、「R」ボタン)を選択する(例えば、クリックする)ことによって、有効/無効にすることができる。
プレゼンテーションウィンド304は、スケーリングウィジェット304eを含む。システムまたはアプリケーションにより、スケーリングウィジェット304eがロードマップまたはボクセル領域の起点に出現させる。スケーリングウィジェット304eは、エンドユーザが選択されたオブジェクトの寸法を三次元(x、y、またはz)で変更することを可能にする。ロードマップ領域をスケーリングする場合、システムまたはアプリケーションは、その特定の領域の密度設定に基づいて、領域内のポーズの数を自動的に増加および/または減少させる。
プレゼンテーションウィンド304には、ユーザが選択可能なアイコン304fを間接ドラッグモードで含む。関節ドラッグモードがアクティブであるとき、並進、回転、およびスケーリングウィジェット304c、304d、304eは無効とされ、エンドユーザはロボット表現上の可動リンク上でホバー(例えば、マウスオーバー)することができる。リンクが選択されると、システムまたはアプリケーションはそのようなものを視覚的に示し(例えば、リンクを強調表示する)、可能な関節移動を表す視覚的指示(例えば、螺旋)の提示を引き起こす。次いで、エンドユーザは視覚的表示に対してリンク(例えば、ボール)の表現を移動させることができ、例えば、関節の位置を制御するために螺旋上でボールを上下に移動させることができる。システムまたはアプリケーションは、入力に従って位置を更新する。
プレゼンテーションウィンド304は、一セットの三次元コントロール304gを含む。エンドユーザは三次元コントロール304gを操作して、システムまたはアプリケーションに、プレゼンテーションウィンド304に提示される三次元ビューを調整させることができる。例えば、エンドユーザは、マウスまたは他のポインティングデバイス上のボタンを押し続けることによって、表現されたシーンの周りをパンすることができる。最終用途は、マウスまたは他のポインティングデバイス上の別のボタンを押し続けることによってビューを回転させることができる。エンドユーザは例えば、マウスまたは他のポインティングデバイス上のスクロールホイールを介してズームを制御することができる。プレゼンテーションウィンド304は例えば、三次元制御アイコン304g(例えば、プレゼンテーションウィンド304の右上に示されている)を含むことができ、これは、エンドユーザがポインタで操作することができ、エンドユーザが特定の軸整列ビューに迅速に移動することを可能にし、また、オルソグラフィックモードとパースペクティブモードとを切り替えることを可能にする。
プロジェクトパネル(Projectパネル)
プロジェクトパネル306は、現在のワークスペースおよびプロジェクト内のすべてのオブジェクトをリストする。項目を選択する(クリックするなど)と、その項目が選択された項目になり、詳細情報が表示される。
プロジェクトパネル306は、エンドユーザが利用可能なワークスペースのすべてを見ること、ならびに新しいワークスペースを作成することを可能にするワークスペースセクション306aを含む。新しいワークスペースを作成するために、エンドユーザは「ワークスペース名」テキストフィールドに名前をタイプし、「追加」ユーザ選択可能アイコン306bを選択する。エンドユーザは「アクティブワークスペース」ドロップダウンメニュー306cを使用して、どのワークスペースが現在のワークスペースであるかを選択することもできる。新しいワークスペースを作成することは、新しいワークスペースをアクティブワークスペースに自動的にしないことに留意されたい。現在アクティブなワークスペースがプレゼンテーションウィンド304に表示され、プロジェクトパネル306にリストされたすべての領域および衝突パーツはアクティブワークスペースに基づく。エンドユーザがクローニングするワークスペースを選択(例えば、クリック)し、次いで、インスペクタパネル308上の「複製」ユーザ選択可能アイコン308aを選択することによって、既存のワークスペースを複製することができる。
投影パネル306は、ボクセル領域セクション306dを含む。ボクセル領域セクション306dはそれぞれが異なる機能を有する3つのユーザ選択可能なアイコン(例えば、ボタン)を有する。「ターゲット」ユーザ選択可能アイコン306eは、エンドユーザにボクセル領域を選択させ、インスペクタパネル308は選択されたボクセル領域に関する詳細を示し、プレゼンテーションウィンド304内に変換またはスケール制御をもたらす。「目」ユーザ選択可能アイコン306fはエンドユーザに、プレゼンテーションウィンド304上のボクセル領域の可視性をトグルさせる。「ボクセル」ユーザ選択可能アイコン306gはエンドユーザに、プレゼンテーションウィンド304上のボクセルの可視性をトグルさせる。
プロジェクトパネル306は、ロードマップ領域セクション306hを含む。ロードマップ領域セクション306hは、アクティブワークスペース内の利用可能なロードマップ領域のすべてをエンドユーザに示す。領域を選択する(例えば、クリックする)と、インスペクタパネル308上のその領域が選択され、プレゼンテーションウィンド304内で、選択された領域を回転、スケーリング、または変換することができる。「追加」ユーザ選択可能アイコン306iを選択する(例えば、クリックする)ことにより、システムまたはアプリケーションはロボットのエンドエフェクタの現在の位置に新しいロードマップ領域を作成し、エンドユーザが新しい起点ポーズを追加できるようにするメニューを提示することになる。「インポート」ユーザ選択可能アイコン306jを選択する(例えば、クリックする)ことにより、システムまたはアプリケーションはエンドユーザに、インポートのためのファイルを選択するように促すことになる。インポートされたロードマップ領域は変換および回転することができるが、スケーリングすることはできない。「複製」ユーザ選択可能アイコン306kを選択する(例えば、クリックする)ことにより、選択されたロードマップ領域がクローン化される。
プロジェクトパネル306は、ハブセクション306lを含む。ハブセクション306lは、プロジェクトで作成されたすべての利用可能なハブを提示する。エンドユーザはエントリを選択し(例えば、クリックし)、インスペクタパネル308でハブを選択することができる。アイテム上でのダブル選択(例えば、ダブルクリック)はシステムまたはアプリケーションに、ロボットモデルを、選択されたハブによって識別されるポーズに移動させることができる。新しいハブは例えば、名称フィールド306mに名前を入力し、ユーザ選択可能なアイン306nを「追加」することを選択(例えばクリック)することによって追加される。これに応答して、システムまたはアプリケーションは、ロボットモデルのエンドエフェクタの現在位置に新しいハブを作成する。
プロジェクトパネル306は、衝突部品セクション306oを含む。衝突部品セクション306oは、ロボットモデルに現在取り付けられているすべての部品、すなわち動作環境を提示する。部品の1つを選択する(例えば、クリックする)と、システムまたはアプリケーションは、選択されたアイテムについてインスペクタパネル308を提示する。エンドユーザは「追加」ユーザ選択可能なアイコン306pを選択(例えばクリック)することで新しい部品を取り付けることができ、その選択により、システムまたはアプリケーションがエンドユーザに接続名称を付けるように促し、取り付ける部品ライブラリから部品を選択し、部品にどのリンクに取り付けるかを識別し、その部品を親リンクに接続する方法についてのオフセットを指定することができる。部品ライブラリに部品がない場合は、設定パネルから部品を追加できる。また、部品を取り付けると、システムまたはアプリケーションは、現在のワークスペースの衝突マトリクスを修正することになる。デフォルトでは衝突部品は親リンクに対して衝突検査されないが、URDF内の他のすべてのリンクに対して衝突検査される。部品がキネマティックチェーン内にないリンクに取り付けられる場合、システムまたはアプリケーションは、依然として、それを衝突として扱う。部品を取り付けることが説明できないポーズを無効にする場合、エンドユーザは、衝突マトリクスが新たに取り付けた部品に対して正しいことを確認するために検査することができる。
プロジェクトパネル306はポーズ検証ステータスセクション(例えば、プロジェクトパネルの底部の青いバー)306qを含む。ポーズ検証ステータスセクション306qは、完了したポーズ検証のパーセンテージの表示を提供する。システムまたはアプリケーションは、領域またはハブが作成または変更されるたびにポーズ検証を実行する。このシステムまたはアプリケーションはバックグラウンドでこのプロセスを実行し、完了すると、すべてのポーズが有効または無効として識別される。システムまたはアプリケーションは第1の視覚特性(例えば、緑色)を使用して有効なポーズを視覚的に表すことができ、第2の視覚特性(例えば、赤色)を使用して無効なポーズを視覚的に表すことができる。ポーズ生成を必要とするアイテムが検証が既に実行されている間に修正される場合、システムまたはアプリケーションは、検証プロセスを再開する。通常、ポーズ検証は自動的に実行されるが、エンドユーザは大きなモーション計画グラフやロードマップなどに対して設定パネルを使用して、この機能を無効にすることができる。自動ポーズ検証が無効になっている場合は、ユーザが選択可能な「検証」アイコン(緑色のボタンなど)がプログレスバーの下などに表示される。
プロジェクトパネル306は、エッジ生成ユーザ選択可能アイコン306rを含む。グラフやロードマップが設定され、ポーズ検証が完了したら、エンドユーザはユーザ選択可能なアインコン306r「エッジを生成する」を選択する(例えばクリックする)ことができる。ユーザ選択可能なアインコン306r「エッジを生成する」を選択すると、システムまたはアプリケーションは現在アクティブなワークスペースのすべてのポーズを1つの接続されたロードマップに接続するプロセスを起動する。このプロセスの間、システムまたはアプリケーションは、各ロードマップ領域および補間マトリクスの設定を使用して、どのポーズを互いに接続するかを決定する。次に、システムまたはアプリケーションは、各可能な接続を衝突検査して、接続が有効であるか否かを判定する。このプロセスが完了した後、エンドユーザは、エッジを視覚化することを望むことができる。
プロジェクトパネル306には、「接続可視」ユーザ選択可能なアイコン306s(例えば、チェックボックス、ラジオボタン)が含まれる。システムまたはアプリケーションは第1の視覚特性(例えば、青)を使用して有効なエッジを提示し、第2の視覚特性(例えば、赤)を使用して無効なエッジを提示する。現在のワークスペースの複雑さに応じて、システムまたはアプリケーションは有効なエッジを決定し、そのようなものをレンダリングするのにいくらかの時間がかかることがある。
エッジが満足できるようになると、現在アクティブなワークスペースに対して占有ファイルが生成できる。占有ファイルは例えばランタイムオペレーション中に、MPAによって採用されてもよい。プロジェクトパネル306は占有生成ユーザ選択可能アイコン306t(例えば、チェックボックス、ラジオボタン)を含む。占有生成ユーザ選択可能なアイコン306tの選択(クリックなど)により、システムまたはアプリケーションは現在アクティブなワークスペース用の占有ファイルを生成する。システムまたはアプリケーションでは、占有ファイルのファイル名を選択するようにエンドユーザに求められる場合がある。名前を入力すると、エンドユーザは「保存」ユーザ選択可能アイコンを選択(例えばクリック)できる。「保存」ユーザ選択可能アイコンを選択すると、システムまたはアプリケーションは生成プロセスを開始する。これは、ロードマップの複雑さに応じて長時間かかる可能性がある。なお、使用中の作業領域ごとにそれぞれの占有ファイルを生成してもよい。
検査パネル(または、インスペクションパネル/Inspectionパネル)
インスペクタパネル308は、現在選択されているオブジェクトに関する情報を提示する。インスペクタパネル308はコンテキストに依存して(又は、コンテキストセンシティブであって)もよく、表示される情報はどのタイプのオブジェクトが選択されるかに応じて異なる。例えば、インスペクタパネル308はモデル化されたロボットのエンドエフェクタの位置および向きを、座標フレーム選択ユーザインターフェース(例えば、プルダウンメニューまたはリスト)308bを介して選択された実世界座標基準系または他の何らかの座標基準系で提示することができる。インスペクタパネル308はまた、システムまたはアプリケーションが衝突解析に基づいて衝突していると判定する任意のリンクのリストを示すことができる。
ビューコントロールパネル(View Controlパネル)
ビュー制御パネル310は、どのオブジェクトがプレゼンテーションウィンド304に表示されるかを制御するウィジェットを含む。ビュー制御パネル310は、エンドユーザがボクセルを表示、または経路をビューイングするときにどのポーズまたはエッジが視覚化されるかを選択することを可能にする。
「ハブ可視(Hubs Visible)」ユーザインターフェース要素(例えば、チェックボックス)308cにより、エンドユーザは、プレゼンテーションウィンド304に表示されるプロジェクトで作成されたハブを有することを、選択することができる(チェックされた場合など)。
「ポーズ可視(Poses Visible)」ユーザインターフェース要素(例えば、チェックボックス)308dにより、エンドユーザは、プレゼンテーションウィンド304に表示されるアクティブなワークスペースに対して生成されたポーズを有することを選択することができる(チェックされた場合など)。
「接続可視(Connections Visible)」ユーザインターフェース要素(例えば、チェックボックス)308eにより、エンドユーザは、プレゼンテーションウィンド304に表示されるアクティブなワークスペースに対して生成されたエッジ接続を有することを選択することができる(チェックされた場合など)。
「経路可視(Paths Visible)」ユーザインターフェース要素(例えば、チェックボックス)308fはエンドユーザが、ディスプレイモードがエッジモードである場合、プレゼンテーションウィンド304に表示される現在のインデックスのためにアームが移動する経路を有することを選択する(例えば、チェックされる場合)ことができる。、「経路可視(Paths Visible)」ユーザインターフェース要素がチェックされず、ディスプレイモードがエッジモードである場合、ロボットアームは、選択されたエッジに沿って前後に移動する。
「スナップボクセル領域(Snap Voxel Region)」ユーザインターフェース要素(例えば、トグル)308gは、エンドユーザがシステムまたはアプリケーションに、ボクセル領域の位置および寸法を計算させ、更新させることを選択することを可能にし、その結果、得られるボクセル領域は、動作計画グラフまたはロードマップにおいて生成された各エッジ上のロボットのすべての位置を囲む。
「ディスプレイモード(Display Mode)」ユーザインターフェース要素(例えば、プルダウンメニュー)308hは、エンドユーザがプレゼンテーションウィンド304におけるプレゼンテーションのためのポーズモードとエッジモードとの間で選択することを可能にする。ポーズモードにおいて、「インデックス(Index)」フィールドの値の変化は、システムまたはアプリケーションに、示された位置にロボットアームをジャンプさせる。エッジモードにおいて、インデックスフィールドの値の変化は、システムまたはアプリケーションに、ロボットのアームを、選択されたエッジに沿って前後に移動させる、または「経路可視」が選択される場合、システムまたはアプリケーションはエンドエフェクタがそのエッジのためにとる経路のプレゼンテーションを引き起こす。
「インデックス(Index)」ユーザインターフェース要素(例えば、フィールド)308iは、エンドユーザがどのポーズまたはエッジがアクティブであるか、およびそのポーズまたはエッジがどのように表示されるかを選択することを可能にする。ポーズまたはエッジが生成されると、それらは大きなアレイでシステムに記憶される。
「スナップショットビュー(Snapshot View)」ユーザインターフェース要素(例えばプルダウンメニュー)308jにより、エンドユーザは、「ファイル(File)」メニューからスナップショットがシステムにロードされた場合、どのタイプのデータが表示されるかを選択することができる。
コンソールパネル
コンソールパネル312は、システムまたはアプリケーションから出力されたすべてのログを表示する。コンソールパネル312は、システムからのメッセージ、警告およびエラーを表示する。
図3Dは、例示された一実施形態による、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースの「衝突部品取り付け」ダイアログボックス320を示す。
「衝突部品取付け」ダイアログボックス320は取付け名を指定する「取付け名」フィールド320aと、取付け部品を選択するための取付け部品プルダウンリストと、親リンクを選択するための親リンクプルダウンリストとを含む。「衝突部品取付け」ダイアログボックス320は、x、y、z軸座標320b、320c、320d、およびx、y、z軸320e、320f、320gの周りの向きの角度を介して三次元ポーズを入力するためのフィールドも含む。ユーザが選択可能なアイコンにより、エンドユーザは取付けを受け入れるかキャンセルすることができる。
図3Eは、図示された一実施形態による、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースのIKパネル322を示す。IKパネル322を使用して、モデル化されているロボットのエンドエフェクタのポーズを指定することができる。
IKパネル322は、位置フィールド322a、322b、322cと、x、y、z軸座標を介して三次元ポーズを表示する回転フィールド322d、322e、322fと、x、y、z軸の周りの配向角とを含む。IKパネル320は各位置および回転フィールドについて、ユーザが選択可能な位置および回転調整アイコン(例えば、上向き矢印、下向き矢印)322g、322h、322i、322jのペアを含み、その選択によってポーズが調整される。IKパネル320は位置調整アイコンおよび/または回転調整アイコンがそれぞれ選択されたときに位置および回転が調整される増分サイズを設定するために、位置および回転増分フィールド322k、322lを含む。IKパネル322は1セットのスナップツーアクシスのユーザ選択可能要素(例えば、トグル)322mを含み、その選択により、システムまたはアプリケーションは、座標をそれぞれの軸にスナップする。IKパネル322は座標が表現される基準系(例えば、実世界)を選択するための基準系プルダウンリスト322nを含む。
前述したように、検査パネル308はコンテキストに依存し(コンテキストセンシティブであって)、どのタイプのアイテムが現在選択されているかに基づいて情報を表示することができる。
図3Fは、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースのロボットインスペクタパネル308-1の形態のインスペクタパネル308を示す。
ロボットインスペクタパネル308-1は、アクティブなワークスペース内のロボットの状態に関する情報を示す。これらは、どのメッシュモード308-1bがロボットを描くために使用されているか(衝突または視覚)、およびエンドエフェクタのポーズ、例えば、x、y、z軸308-1c、308-1d、308-1eおよびエンドエフェクタのx、y、z軸308-1f、308-1g、308-1hの周りの向き(座標を見るためのフレームを含む)などのurdfからの名前308-1aなどを含む。「基準フレーム選択」プルダウンリスト308-1iにより、ユーザは基準フレームを選択することができる。それはまた、現在互いに衝突している全てのロボットリンクをリストするテーブル308-1jを含む。この情報は現在のワークスペースの衝突マトリクスのエラーを迅速に診断し、訂正するのに役立つ。ロボット検査パネル308-1は、三次元パネル304内のロボット上の任意の可動リンクをクリックすることによって可視にすることができる。
図3Gは、図示された一実施形態による、図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースの「ワークスペースインスペクタ」パネル(又は、Workspace Inspectorパネル)308-2の形態のインスペクタパネル308を示す。
「ワークスペースインスペクタ」パネル308-2はプロジェクトパネル上で検査したい作業領域をクリックすることによって見ることができる。インスペクタパネル308-2は、現在の状態を特定する「状態」フィールド308-2aと、システムまたはアプリケーションに作業領域の複製又はクローン(duplicate or clone)を行わせる「複製」ユーザ選択可能アイコン(例えばボタン)308-2bを含む。インスペクタパネル308-2はIK解決のために使用されるキネマティックチェーンの開始リンク308-2cおよび終了リンク308-2dの表示を含む。インスペクタパネル308-2は有効および無効なポーズ308-2eと有効および無効なエッジ308-2fの数の表示を含む統計値も含む。インスペクタパネル308-2は生成されたジョイント構成、エッジ、ポーズを各々エクスポートする能力を提供する「構成」ユーザ選択可能アイコン308-2g、「エッジ」ユーザ選択可能アイコン308-2h、および「ポーズ」ユーザ選択可能アイコン308-2iを含む。
ワークスペースはワークスペースインスペクタパネル308内の名前フィールド(例えば、トップフィールド)を編集することによって、名前を変更することができる。ワークスペースは、名前フィールドの横にある「×」をクリックして選択(クリックなど)することで削除できる。
「ボクセル領域インスペクタ」パネル(又は、"voxcel Region Inspector"パネル)(図示せず)は、ボクセル領域の現在の座標(x、y、z)を、その現在の寸法と共に提示する。この「ボクセル領域インスペクタ」パネルはプロジェクトパネル上の「ターゲット」アイコンを選択する(例えば、クリックする)ことによって可視にすることができる。
「ロードマップ領域インスペクタ」パネル(又は、"roadmap region Inspector"パネル)(図示せず)は現在選択されている領域に関する情報を提示し、エンドユーザが、領域内のポーズがどのように生成され、互いに接続されるかを変更することを可能にする。
ロードマップ領域をスケーリングするとき、ポーズ間隔値は、各ポーズ間の間隔を決定する。例えば、ロードマップ領域を大きくすると、所定のポーズ間隔値で指定された間隔で、より多くのポーズが追加されることになる。
「接続密度」値(又は、"Connection density"値)は、システムまたはアプリケーションによって生成されるエッジの数を指定または制御することができる。内部値は、現在選択されている領域内のすべてのポーズの間でいくつのエッジが生成されるかを制御する。外部値は、領域間の接続が補間マトリクスに従って接続されるように設定されると仮定して、現在選択されている領域と他のすべての領域との間でいくつのエッジが生成されるかを制御する。
「内部モーションタイプ値」" Internal Motion type "値は、選択されたロードマップ領域内の各ポーズ間のエッジがJOINTまたはCARTESIAN補間タイプを使用して作成されるかどうかを決定する。
「ハブインスペクタ」パネル(又は、"hub inspector"パネル)(図示せず)はワールドフレーム内のハブの現在位置(x、y、z、ロール、ピッチ、ヨー)を示し、「移動(Go To)」ボタンはロボットモデルをそのハブに移動させ、「ポーズ更新」ボタンをクリックすると、ハブの位置およびジョイントの構成は現在のロボットモデルの位置およびジョイントの構成になる。
「衝突部品インスペクタ」パネル(又は、"collision part inspector"パネル)(図示せず)には、衝突部品の名前、現在の親、親からの取り付けオフセット、およびその寸法が表示され、名前フィールドの横の「×」ボタンをクリックすることによって、部品を削除することができる。
また、インスペクタはエンドユーザに、対応するフィールドに新しい数字を入力することによって、領域の位置およびサイズを閲覧および編集させるとともに、「起点位置」を管理させる
図3Hは、図示された一実施形態による、図2のプロセッサベースシステムによって提示されるグラフィカルユーザインターフェースの「セット起点ポーズ」ダイアログボックス(又は、"set origin pose"ダイアログボックス)330を示す。
起点ポーズは、所与のロードマップ領域内の他のポーズのすべてがどのようにシードされるかを記述するポーズのセットである。「起点ポーズ管理」ユーザ選択可能アイコン(例えば、ボタン)を選択する(例えば、クリックする)と、システムまたはアプリケーションはエンドエフェクタ座標がロックされたままであるモードにロボットモデルをロックするが、回転制御ウィジェットおよび/またはIKウィンドを介してその点の周りで回転させることができる。
設定起点ポーズダイアログボックス(又は、"set origin pose"ポーズダイアログボックス)330は「領域名」フィールド330aを含み、領域名を入力または表示する。設定起点ポーズダイアログボックス330は、「go to」ユーザ選択可能アイコン330bを含み、その選択によって、システムまたはアプリケーションは選択されたポーズにアイテムを移動させる。次に、「add current pose」ユーザ選択可能アイコン330cを選択する(例えば、クリックする)ことによって、ロードマップ領域に新しい起点ポーズを追加することができる。ロードマップ領域に追加された各起点ポーズについて、システムまたはアプリケーションは対応する起点ポーズの向きにシードされた領域の密度および間隔パラメータに一致するポーズのセットを作成する。「Poses Visible」が使用可能であり、複数の起点ポーズが追加される場合、向きの違いは容易に明らかになるであろう。設定起点ポーズダイアログボックス330は「update」ユーザ選択可能アイコン330dを含み、その選択はシステムまたはアプリケーションに起点ポーズを更新させる。設定起点ポーズダイアログボックス330が「削除」ユーザ選択可能アイコン(又は、"delete"ユーザ選択可能アイコン)330eを含み、その選択は、システムまたはアプリケーションに起点ポーズを削除させる。
図3Iは、図示された一実施形態による、図2のプロセッサベースのシステムによって第3の時点で提示されたグラフィカルユーザインターフェースのプレゼンテーションウィンド304を示し、例示的なロボット340と、複数の起点ポーズ344を有するロードマップ領域342とを示す。
図3Jは第4の時点での図2のプロセッサベースのシステムによって提示されるグラフィカルユーザインターフェースのプレゼンテーションウィンド304であり、例示された一実施形態による、経路可視オプションが選択されたときの、現在のエッジのための例示的なロボット340、ワークスペース346、および経路348を示す。
図4Aは図1のロボット102のための例示的モーション計画グラフ400であり、これは、1つの例示的実施形態による、対応する移行がロボット102と環境100内の1つ以上の障害物との間の衝突をもたらすであろうと決定された計画グラフ400のエッジを含む。図4Bは1つの例示の実施形態による、対応する移行がロボット102と環境100内の1つ以上の障害物との間の衝突をもたらすことになると決定された計画グラフ400のエッジが除去された例示的なモーション計画グラフ400である。計画グラフ400の各ノードはロボット102の状態を表し、計画グラフ400の各エッジは、ロボット102のある状態から別の状態への移行を表す。例えば、エッジ410aは、ノード408aによって表されるロボット102の状態とノード408bによって表されるロボット102の状態との間の移行を表す。エッジ410iは、ノード408cによって表されるロボット102の状態とノード408dによって表されるロボット102の状態との間の移行を表す。
ロボット102のための計画グラフ400の各エッジは、計画グラフ400において、そのエッジによって表されるある状態から別の状態への移行を行うときに、ロボット102によって掃引される3D空間内のボリュームに対応するいくつかの数のボクセル(またはボックス)を有する。このような情報は、オフチップ計画グラフエッジ情報メモリ284に計画グラフエッジ情報として記憶され、システム200はロボット102の寸法の変化に対応するために、異なる計画グラフをスワップアウトすることができる。実行時に現在の環境を表すセンサ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は、例示された一実施形態による、プロセッサベースのシステム200におけるオペレーション方法500を示す。プロセッサベースのシステム200におけるオペレーション方法500は例えば、システムの呼出しまたは起動または電源投入に応答して、502から開始する。
504で、プロセッサベースのシステムまたはプロセッサベースのシステムを介して実行されるアプリケーションを介して、ユーザインターフェースが提示される。
506で、ロボットモデルが、プロセッサベースのシステムまたはアプリケーションを介して受信または指定される。
508において、離散化された動作環境が、プロセッサベースのシステムまたはアプリケーションを介して受信または指定される。
510において、離散化された動作環境におけるロボットモデルの表現が、プロセッサベースのシステムまたはアプリケーションを介して提示されるユーザインターフェースを介して提示される。
512において、プロセッサベースのシステムまたはアプリケーションは、例えば、ユーザインターフェースを介した入力として、1つ以上のシードポーズを指定する入力を受け取る。シードポーズは手動で入力することも、ファイルまたはファイルへのリンクとして提供することもできる。
任意選択で、514において、プロセッサベースのシステムまたはアプリケーションは、自律的に生成されたシードポーズの運動学的検査および/または衝突検査を自律的に実行する。例えば、プロセッサベースのシステムまたはアプリケーションは、モデル化されているロボットの運動学的制約がシードポーズまたはシードポーズ間の移行(例えば、エッジ)によって違反されているかどうかを自律的に判定する。また、例えば、プロセッサベースのシステムまたはアプリケーションは、オブジェクト(例えば、環境内の既知の静的オブジェクト)との衝突がシードポーズからまたはシードポーズ間の移行から生じるかどうかを自律的に決定する。
516で、運動学的制約に違反せず、衝突が検出されない場合、プロセッサベースのシステムまたはアプリケーションは1つまたは複数のシードポーズおよび/または任意の関連するエッジを、モーション計画グラフ、ロードマップ、またはラティスに、あるいはモーション計画グラフ、ロードマップ、またはラティスの領域またはサブラティスに追加する。
518において、プロセッサベースのシステムまたはアプリケーションは、シードポーズに基づいて、1つ以上の追加ポーズおよび/または関連するエッジを自律的に生成する。例えば、プロセッサベースのシステムまたはアプリケーションは、起点ポーズの領域またはサブラティス内に1つまたは複数の隣接するポーズおよびエッジを自律的に生成することができる。
520において、プロセッサベースのシステムまたはアプリケーションは、自律的に生成された追加のポーズおよび/またはエッジの運動学的検査および/または衝突検査を自律的に実行する。例えば、プロセッサベースのシステムまたはアプリケーションは、モデル化されているロボットの運動学的制約が、追加のポーズ、または、シードポーズと追加のポーズ間の移行(例えば、エッジ)、または、追加のポーズ間の移行によって違反されるかどうかを自律的に判定する。また、例えば、プロセッサベースのシステムまたはアプリケーションは、オブジェクト(例えば、環境内の既知の静的オブジェクト)との衝突が、追加ポーズにより、または、シードポーズと追加ポーズ間の移行により、または、追加ポーズ間の移行により生じるかどうかを自律的に決定する。
522において、運動学的制約に違反せず、衝突が検出されない場合、プロセッサベースのシステムまたはアプリケーションは1つまたは複数の追加のポーズおよび/または関連するエッジを、モーション計画グラフ、ロードマップまたはラティスに、またはモーション計画グラフ、ロードマップまたはラティスの領域またはサブラティスに追加する。
524で、システムまたはアプリケーションは、ユーザインターフェースを介して結果を提示する。
526において、ロボットモデルおよび/または動作環境に対する調整を指定するユーザ入力が、プロセッサベースのシステムまたはアプリケーションを介して受信される。
528において、システムまたはアプリケーションは、指定された調整に基づいて、運動学的検査および/または衝突検査を自律的に実行する。例えば、システム200は、モデル化されているロボットの運動学的制約が調整に基づいて違反されているかどうかを自律的に判定する。また、例えば、システム200は、対応する移行がロボット102の少なくとも一部と、環境内の1つ以上の障害物の少なくとも1つの少なくとも一部との間の衝突をもたらす第1の計画グラフのエッジがあればそのいずれかを特定する。システムは第1のノードとして表される第1のポーズと第2のノードによって表される第2のポーズの間の移行において、ロボットまたはその一部によって掃引されるボリュームを決定することができ、この移行は、第1のノードと第2のノードの間のエッジとして表される。
530において、運動学的制約に違反せず、衝突が検出されない場合、プロセッサベースのシステムまたはアプリケーションは、モーション計画グラフ、ロードマップまたはラティス、またはモーション計画グラフ、ロードマップまたはラティスの領域またはサブラティスを更新して、調整を表す。
532において、システムまたはアプリケーションは、ユーザインターフェースを介して結果を提示する。
モーション計画を容易にするためのプロセッサベースのシステム200におけるオペレーションの方法500は534で、例えば、再び呼び出されるまで終了する。いくつかの実施形態では、方法500が継続的に実行されることも、マルチスレッドプロセッサ上のスレッドとして実行されることもできる。
図6は図5に示される方法500を実行する際に使用され得る、例示の一実施形態による、プロセッサベースのシステムにおけるオペレーションの方法600を示す。プロセッサベースのシステム200におけるオペレーションの方法600は602において、例えば、システムの呼び出し又はインヴォケーション(call or invocation)または電源投入に応答して開始する。
いくつかの実装形態では、エンドユーザがモーション計画グラフ、ロードマップ、またはラティスの2つ以上の領域またはサブラティスのそれぞれに、シードポーズまたは起点ポーズをシードすることができる。システムまたはアプリケーションはそれぞれの領域またはサブラティスのための追加のポーズおよび/またはエッジを自律的に生成し、運動力学的および/または衝突検査を実行し、運動力学的および/または衝突検査された追加のポーズおよび/またはエッジをそれぞれの領域またはサブラティスに追加することができる。次いで、システムまたはアプリケーションは自律的に、またはエンドユーザによって誘導されて、領域またはサブラティスを縫い合わせて、完全に接続されたモーション計画グラフ、ロードマップ、またはラティスを形成することができる。例えば、システム又はアプリケーションは、サブラティス接続ポーズ及び/又は関連するサブラティス接続エッジを生成し、運動学的及び/又は衝突検査を実行し、運動学的及び/又は衝突検査されたサブラティス接続ポーズ及び/又は関連するサブラティス接続エッジをモーション計画グラフ、ロードマップ又はラティスに追加することができる。例えば、システムまたはアプリケーションは特定の領域のためのロードマップ又はサブラティスを生成し得る。システムまたはアプリケーションはグラフ内の1つまたは複数の最も近いハブへのエッジを生成し、例えば、第1の領域またはサブラティスからのハブ点を第2の領域またはサブラティスのハブ点に直接接続することができる。次に、システムまたはアプリケーションはハブ同士を接続するエッジを生成し、運動学的および/または衝突検査が、不可能なポーズまたは衝突を検出しない場合、そのエッジを追加することができる。
604において、プロセッサベースのシステムまたはアプリケーションは、例えば、ユーザインターフェースを介した入力として、モーション計画グラフ、ロードマップ、またはラティスの第1の領域またはサブラティスのための1つまたは複数のシードポーズを指定する入力を受信する。シードポーズは手動で入力することも、ファイルまたはファイルへのリンクとして提供することもできる。
任意選択で、606において、プロセッサベースのシステムまたはアプリケーションは、任意選択で、シードポーズの運動学的検査および/または衝突検査を自律的に実行する。例えば、プロセッサベースのシステムまたはアプリケーションは、モデル化されているロボットの運動学的制約がシードポーズまたはシードポーズ間の移行によって違反されているかどうかを自律的に判定する。また、例えば、プロセッサベースのシステムまたはアプリケーションは、オブジェクト(例えば、環境内の既知の静的オブジェクト)との衝突がシードポーズまたはシードポーズ間の移行から生じるかどうかを自律的に決定する。
608で、運動学的制約に違反せず、衝突が検出されない場合、プロセッサベースのシステムまたはアプリケーションは、上記1つまたは複数のシードポーズおよび任意の関連するエッジを、モーション計画グラフ、ロードマップ、またはラティスの第1の領域または第1のサブラティスに追加する。
610において、プロセッサベースのシステムまたはアプリケーションは、モーション計画グラフ、ロードマップ、またはラティスの第1の領域または第1のサブラティスのシードポーズに基づいて、1つまたは複数の追加のポーズおよび/または関連するエッジを自律的に生成する。例えば、プロセッサベースのシステムまたはアプリケーションは、シードまたは起点ポーズの第1の領域または第1のサブラティス内に1つまたは複数の隣接ポーズを自律的に生成することができる。
612において、プロセッサベースのシステムまたはアプリケーションは、自律的に生成された追加のポーズおよび/またはエッジの運動学的検査および/または衝突検査を自律的に実行する。例えば、プロセッサベースのシステムまたはアプリケーションは、モデル化されているロボットの運動学的制約が追加のポーズ(複数)により又はシードポーズと追加のポーズとの間の移行により又は追加のポーズ(複数)間の移行によって違反されるかどうかを自律的に判定する。また、例えば、プロセッサベースのシステムまたはアプリケーションはオブジェクト(例えば、環境内の既知の静的オブジェクト)との衝突が、追加ポーズ(複数)により又はシードポーズと追加ポーズの間の移行により又は追加ポーズの間の移行によって生じるかどうかを自律的に決定する。
614で、運動学的制約に違反せず、衝突が検出されない場合、プロセッサベースのシステムまたはアプリケーションは、1つまたは複数の追加のポーズおよび任意の関連するエッジを、モーション計画グラフ、ロードマップ、またはラティスの第1の領域または第1のサブラティスに追加する。
616において、プロセッサベースのシステムまたはアプリケーションは、例えば、ユーザインターフェースを介した入力として、モーション計画グラフ、ロードマップ、またはラティスの第2の領域またはサブラティスのための1つまたは複数のシードポーズを指定する入力を受信する。シードポーズは手動で入力することも、ファイルまたはファイルへのリンクとして提供することもできる。
任意選択で、618において、プロセッサベースのシステムまたはアプリケーションは、任意選択で、シードポーズの運動学的検査および/または衝突検査を自律的に実行する。例えば、プロセッサベースのシステムまたはアプリケーションは、モデル化されているロボットの運動学的制約がシードポーズによりまたはシードポーズ間の移行により違反されているかどうかを自律的に判定する。また、例えば、プロセッサベースのシステムまたはアプリケーションはオブジェクト(例えば、環境内の既知の静的オブジェクト)との衝突がシードポーズからまたはシードポーズ間の移行から生じるかどうかを自律的に決定する。
620で、運動学的制約に違反せず、衝突が検出されない場合、プロセッサベースのシステムまたはアプリケーションは、1つまたは複数のシードポーズおよび任意の関連するエッジを、モーション計画グラフ、ロードマップ、またはラティスの第2の領域または第2のサブラティスに追加する。
622において、プロセッサベースのシステムまたはアプリケーションは、モーション計画グラフ、ロードマップ、またはラティスの第2の領域または第2のサブラティスのシードポーズに基づいて1つまたは複数の追加のポーズおよび/または関連するエッジを自律的に生成する。例えば、プロセッサベースのシステムまたはアプリケーションは、シードまたは起点ポーズの第2の領域または第2のサブラティス内に1つまたは複数の隣接ポーズを自律的に生成することができる。
624において、プロセッサベースのシステムまたはアプリケーションは、自律的に生成された追加のポーズおよび/またはエッジの運動学的検査および/または衝突検査を自律的に実行する。例えば、プロセッサベースのシステムまたはアプリケーションは、モデル化されているロボットの運動学的制約が追加のポーズによってまたはシードポーズと追加のポーズの間の移行によってまたは追加のポーズ間の移行によって違反されるかどうかを自律的に判定する。また、例えば、プロセッサベースのシステムまたはアプリケーションは、オブジェクト(例えば、環境内の既知の静的オブジェクト)との衝突が、追加のポーズによりまたはシードポーズと追加のポーズとの間の移行によりまたは追加ポーズ間の移行によって生じるかどうかを自律的に決定する。
626で、運動学的制約に違反せず、衝突が検出されない場合、プロセッサベースのシステムまたはアプリケーションは、上記1つまたは複数の追加のポーズおよび任意の関連するエッジを、モーション計画グラフ、ロードマップ、またはラティスの第2の領域または第2のサブラティスに追加する。
628において、プロセッサベースのシステムまたはアプリケーションは、第1の領域または第1のサブラティスのポーズを第2の領域または第2のサブラティスのポーズと結合するために、1つまたは複数のサブラティス接続ポーズおよび/または関連するサブラティス接続エッジを自律的に生成し、モーション計画グラフ、ロードマップ、またはラティスの2つまたはそれ以上の領域または2つまたはそれ以上のサブラティスの接続またはスティッチ(又は、縫い合わせ)を行う。例えば、プロセッサベースのシステムまたはアプリケーションは、第1の領域と第2の領域との間、または第1のサブラティスと第2のサブラティスとの間に、1つまたは複数の隣接するポーズを自律的に生成することができる。
630において、プロセッサベースのシステムまたはアプリケーションは、自律的に生成されたサブラティス接続ポーズおよび/またはサブラティス接続エッジの運動学的検査および/または衝突検査を自律的に実行する。例えば、プロセッサベースのシステムまたはアプリケーションは、モデル化されているロボットの運動学的制約がサブラティス接続ポーズによりまたはサブラティス接続ポーズ間の移行によりまたはサブラティス接続移行により、およびそれぞれの領域またはそれぞれのサブラティスのポーズまたはエッジにより違反されるかどうかを自律的に判定する。また、例えば、プロセッサベースのシステムまたはアプリケーションは、オブジェクト(例えば、環境内の既知の静的オブジェクト)との衝突が、サブラティス接続ポーズ、または、サブラティス接続ポーズ間のサブラティス接続移行、または、それぞれの領域またはそれぞれのサブラティスの移行およびポーズまたはエッジから生じるかどうかを自律的に判定する。
632で、運動学的制約に違反せず、衝突が検出されない場合、プロセッサベースのシステムまたはアプリケーションは、上記1つまたは複数のサブラティス接続ポーズおよび任意の関連するサブラティス接続エッジを、モーション計画グラフ、ロードマップ、またはラティスに追加する。
上記の例は、説明を明確にするために、2つの領域またはサブラティスのみを有する実施形態を提示する。当業者は本明細書の教示から、同じアプローチを3つ以上の領域またはサブラティスに適用するために繰り返すことができることを認識するであろう。
モーション計画を容易にするためのプロセッサベースのシステム200におけるオペレーションの方法600は例えば、再び呼び出されるまで、634で終了する。一部の実施形態では、方法600が継続的に実行することも、マルチスレッドプロセッサ上のスレッドとして実行することもできる。
上記の詳細説明においては、ブロック図、概略図及び実施例を用いて、装置及び/又は方法の多様な実施形態について記載した。これらのブロック図、概略図及び実施例は1つまたは複数の機能及び/または動作を含んでいるが、当業者には明らかなように、これらのブロック図、フローチャート及び実施例の範囲におけるそれぞれの機能及び/または動作は個々に及び/または一括して、多様なハードウェア、ソフトウェア、ファームウェア、または事実上任意のこれらの組み合わせによって実装することができる。一実施形態では、本願主題がブール回路、特定用途向け集積回路(ASIC)および/またはFPGAを介して実装され得る。しかしながら、本明細書に開示された実施形態は全体的にまたは部分的に、標準的な集積回路における様々な異なる実装において、1つまたは複数のコンピュータ上で実行される1つまたは複数のコンピュータプログラムとして(例えば、1つまたは複数のコンピュータシステム上で実行される1つまたは複数のプログラムとして)、1つまたは複数のコントローラ上で実行される1つまたは複数のプログラムとして、1つまたは複数のプロセッサ(例えば、マイクロプロセッサ)上で実行される1つまたは複数のプログラムとして、ファームウェアとして、またはそれらの事実上任意の組合せとして実装することができ、回路を設計すること、および/またはソフトウェアおよび/またはファームウェアのためのコードを書き込むことは、本開示に照らして当業者の技術の範囲内で十分にあることを、当業者は認識するであろう。
当業者は本明細書に記載された方法またはアルゴリズムの多くが、追加のオペレーションを使用し、いくつかのオペレーションを省略し、および/または指定された順序とは異なる順序でオペレーションを実行し得ることを認識するであろう。
さらに、当業者は、本明細書で教示されるメカニズムが様々な形態でプログラム製品として配布されることが可能であり、例示的な実施形態が配布を実際に実行するために使用される信号担持媒体の特定のタイプにかかわらず、等しく適用されることを理解するであろう。信号担持媒体の例にはハードディスクドライブ、CD ROM、およびコンピュータメモリなどの記録可能タイプの媒体が含まれるが、これらに限定されない。
上記の種々の実施形態は組み合わされて更なる実施形態を提供することができる。「1つまたは複数のプロセッサ上に離散化された環境を記憶するロボットのモーションプラニングおよびその改善された動作」と題する2018年2月6日に出願された米国特許出願第62/626,939号、および「自動運転車のためのモーションプラニングと再構成可能なモーションプラニングプロセッサ」と題する2017年6月9日に出願された国際特許出願第PCT/US2017/036880号、「動的物体を有する環境における自動運転車のモーションプラニングを容易にするための装置、方法及び物品」と題する2018年1月12日に出願された米国特許出願公開第62/616,783号、「特殊化されたロボット移動ハードウェア及びその製造及び使用方法」と題する2016年1月5日に出願された国際特許出願公開第WO2016/122840号、および、「モーションプランニンググラフ生成ユーザインターフェース、システム、方法、および物品」と題する2019年4月17日に出願された米国特許出願公開第62/835,139号を含むがこれらに限定されない、本願と同一の譲受人に譲渡された、本明細書に言及されかつ/またはアプリケーションデータシートにリストされた米国特許出願公開、米国特許出願、外国特許および外国特許出願の全てが、全体として参照により本明細書に組み込まれる。上記の詳細説明に照らして、上記の及び他の変形がそれらの実施形態に対して行われることが可能である。一般に、以下の特許請求の範囲において、使用される用語は特許請求の範囲を、明細書および特許請求の範囲に開示される特定の実施形態に限定するように解釈されるべきではなく、そのような特許請求の範囲が権利を有する均等物の全範囲とともに、すべての可能な実施形態を含むように解釈されるべきである。したがって、特許請求の範囲は、本開示によって限定されない。
下記は、本願の出願当初に記載の発明である。
<請求項1>
ユーザインターフェースを提供するためのプロセッサベースのシステムにおけるオペレーション方法であって、前記方法は、
1つまたは複数の起点ポーズの視覚的指定を可能にする少なくとも1つのユーザインターフェース要素を提供するステップと、
前記プロセッサベースのシステムによって、いくつかの追加ポーズを自律的に生成するステップであって、前記起点ポーズおよび自律的に生成された前記追加ポーズはポーズグループを形成する、該ステップと、
前記プロセッサベースのシステムによって、いくつかのエッジを自律的に生成するステップであって、各エッジは、前記起点ポーズおよび自律的に生成された前記追加ポーズを含む前記ポーズグループの前記ポーズのそれぞれのペアの間の移行を特定する、該ステップと、を有する、方法。
<請求項2>
前記プロセッサベースのシステムによる運動学的検査を自律的に実行するステップをさらに有する、請求項1に記載の方法。
<請求項3>
運動学的検査を自律的に実行するステップは、ロボットの幾何学的形状に基づいて、前記プロセッサベースのシステムによって自律的に生成された前記追加ポーズの運動学的検査を自律的に実行するステップを含む、請求項2に記載の方法。
<請求項4>
前記ポーズのそれぞれの衝突検査を自律的に行うステップをさらに有する、請求項1に記載の方法。
<請求項5>
前記ポーズのそれぞれのペア間の各移行の衝突検査を自律的に実行するステップをさらに有する、請求項1に記載の方法。
<請求項6>
前記プロセッサベースのシステムによって、ロボットが自己衝突しているか、またはワークスペース内の物体と衝突している場合に、前記ポーズグループから任意のポーズを自律的に排除するステップをさらに有する、請求項1に記載の方法。
<請求項7>
前記プロセッサベースのシステムによって、第1のサブラティスと第2のサブラティスの間でポーズを接続するいくつかのサブラティス接続ポーズを自律的に生成するステップをさらに有する、請求項1に記載の方法。
<請求項8>
前記プロセッサベースのシステムによって、第1のサブラティスと第2のサブラティスとの間でポーズを接続するいくつかのサブラティス接続エッジを自律的に生成するステップをさらに有する、請求項1に記載の方法。
<請求項9>
プロセッサベースのシステムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
グラフィカルユーザインターフェースを提供させ、
1つまたは複数の起点ポーズの指定を受信させ、
いくつかの追加ポーズを自律的に生成させ、
いくつかのエッジを自律的に生成させる、少なくとも1つのプロセッサ実行可能命令またはデータを格納する少なくとも1つの非一時的プロセッサ読み取り可能媒体を有し、
前記起点ポーズおよび自律的に生成された前記追加ポーズはポーズグループを形成し、
各エッジは前記起点ポーズ及び自律的に生成された前記追加ポーズを含む前記ポーズグループのそれぞれの前記ポーズのペアの間の移行を特定する、
プロセッサベースのシステム。
<請求項10>
前記少なくとも1つのプロセッサによって実行されたとき、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、
運動学的検査を自律的に実行させる、請求項9に記載のプロセッサベースのシステム。
<請求項11>
運動学的検査を自律的に実行するために、前記少なくとも1つのプロセッサは、
ロボットの幾何学的形状に基づいて自律的に生成された前記追加ポーズの運動学的検査を自律的に実行する、請求項10に記載のプロセッサベースのシステム。
<請求項12>
前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能な命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
各前記ポーズのそれぞれの衝突検査を自律的に行なわせる、請求項9に記載のプロセッサベースのシステム、
<請求項13>
前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能な命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
前記ポーズのそれぞれのペア間の各移行の衝突検査を自律的に実行させる、請求項9に記載のプロセッサベースのシステム。
<請求項14>
前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
ロボットが自己衝突しているか、またはワークスペース内の物体と衝突している場合に、前記ポーズグループから任意のポーズを自律的に排除する、請求項9に記載のプロセッサベースのシステム。
<請求項15>
前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
第1のサブラティスと第2のサブラティスとの間でポーズを接続するいくつかのサブラティス接続ポーズを自律的に生成させる、請求項9に記載のプロセッサベースのシステム。
<請求項16>
前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
第1のサブラティスと第2のサブラティスとの間でポーズを接続するいくつかのサブラティス接続エッジを自律的に生成させる、請求項9に記載のプロセッサベースのシステム。
<請求項17>
ユーザインターフェースを提供するためのプロセッサベースのシステムにおけるオペレーションの方法であって、実質的に本明細書に開示及び説明された、方法。
<請求項18>
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、本明細書に実質的に開示及び説明されたユーザインターフェースを提供させるプロセッサ実行可能な命令またはデータの少なくとも1つを格納する少なくとも1つの非一時的プロセッサ可読媒体
を備えるプロセッサベースのシステム。

Claims (22)

  1. ユーザインターフェースを提供するためのプロセッサベースのシステムにおけるオペレーション方法であって、前記方法は、
    1つまたは複数の起点ポーズの視覚的指定を可能にする少なくとも1つのユーザインターフェース要素を提供するステップと、
    前記プロセッサベースのシステムによって、いくつかの追加ポーズを自律的に生成するステップであって、前記起点ポーズおよび自律的に生成された前記追加ポーズはポーズグループを形成する、該ステップと、
    前記プロセッサベースのシステムによって、いくつかのエッジを自律的に生成するステップであって、各エッジは、前記起点ポーズおよび前記自律的に生成された前記追加ポーズを含む前記ポーズグループの前記ポーズのそれぞれのペアの間の移行を特定する、該ステップと、を有し、
    前記プロセッサベースのシステムによって、前記自律的に生成された前記追加ポーズのいずれかが運動学的制約に違反するかどうかを決定するために、前記自律的に生成された前記追加ポーズの運動学的検査を自律的に実行するステップと、
    前記プロセッサベースのシステムによって、前記ポーズの前記それぞれのペアのそれぞれの間の各移行の衝突検査を自律的に実行するステップと、
    前記プロセッサベースのシステムによって、前記衝突検査を成功裏に通過し、前記運動学的検査を成功裏に通過した自律的に生成された前記エッジ及び前記自律的に生成された前記追加ポーズのそれぞれについての前記自律的に生成された前記エッジに対応するエッジ及び前記自律的に生成された前記追加ポーズに対応するノードをモーション計画ラティスに追加するステップを含み、
    前記モーション計画ラティスは複数のノードと複数のエッジとを含み、前記ノードはそれぞれの状態を表し、前記エッジは前記モーション計画ラティス内の前記エッジのそれぞれの1つによって結合された前記ノードのそれぞれのペアによって表される前記状態のペアの間の有効な移行をそれぞれ表す、方法。
  2. 前記プロセッサベースのシステムによる視覚的に示された1つまたは複数の前記起点ポーズの運動学的検査を自律的に実行するステップをさらに有する、請求項1に記載の方法。
  3. 自律的に生成された前記追加ポーズの運動学的検査を自律的に実行するステップは、ロボットの幾何学的形状に基づいて、前記プロセッサベースのシステムによって自律的に生成された前記追加ポーズの運動学的検査を自律的に実行するステップを含む、請求項2に記載の方法。
  4. 前記ポーズのそれぞれの間の移行の衝突検査を自律的に行うステップをさらに有する、請求項1に記載の方法。
  5. 前記ポーズのそれぞれのペア間の各移行の衝突検査を自律的に実行するステップは、
    前記起点ポーズと前記自律的に生成された前記追加ポーズとを含む前記ポーズグループ内の前記ポーズのそれぞれのペアの間のそれぞれの移行の衝突検査を自律的に実行するステップをさらに有する、請求項1に記載の方法。
  6. 前記プロセッサベースのシステムによって、ロボットが自己衝突しているか、またはワークスペース内の物体と衝突している場合に、前記ポーズグループから任意のポーズを自律的に排除するステップをさらに有する、請求項1に記載の方法。
  7. 前記プロセッサベースのシステムによって、第1のサブラティス内のポーズと第2のサブラティス内のポーズの間でポーズを接続するいくつかのサブラティス接続ポーズを自律的に生成するステップをさらに有する、請求項1に記載の方法。
  8. 前記プロセッサベースのシステムによって、第1のサブラティス内のポーズと第2のサブラティス内のポーズとの間でポーズを接続するいくつかのサブラティス接続エッジを自律的に生成するステップをさらに有する、請求項1に記載の方法。
  9. 有効なポーズを無効なポーズから視覚的に区別する視覚的提示を提供するステップをさらに含む、請求項1に記載の方法。
  10. プレゼンテーションウィンド内のロボットの視覚的表現における選択されたアイテムの並進または回転の少なくとも1つがドラッグ入力を介して指定されることを可能にする少なくとも1つのユーザインターフェース要素を提示するステップをさらに含む、請求項1に記載の方法。
  11. プレゼンテーションウィンド内のロボットの視覚的表現における選択された関節の並進または回転のうちの少なくとも1つがドラッグ入力を介して指定されることを可能にする少なくとも1つのユーザインターフェース要素を提示するステップをさらに含む、請求項1に記載の方法。
  12. プロセッサベースのシステムであって、
    少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
    グラフィカルユーザインターフェースを提供させ、
    1つまたは複数の起点ポーズの指定を受信させ、
    いくつかの追加ポーズを自律的に生成させ、
    いくつかのエッジを自律的に生成させ
    前記プロセッサベースのシステムによって、前記自律的に生成された前記追加ポーズのいずれかが運動学的制約に違反するかどうかを決定するために、前記自律的に生成された前記追加ポーズの運動学的検査を自律的に実行させ、
    前記プロセッサベースのシステムによって、前記ポーズの前記それぞれのペアのそれぞれの間の各移行の衝突検査を自律的に実行させ、
    前記衝突検査を成功裏に通過し、前記運動学的検査を成功裏に通過した自律的に生成された前記エッジ及び前記自律的に生成された前記追加ポーズのそれぞれについての前記自律的に生成された前記エッジに対応するエッジ及び前記自律的に生成された前記追加ポーズに対応するノードをモーション計画ラティスに追加させる、少なくとも1つのプロセッサ実行可能命令またはデータを格納する少なくとも1つの非一時的プロセッサ読み取り可能媒体を有し、
    前記起点ポーズおよび自律的に生成された前記追加ポーズはポーズグループを形成し、
    各エッジは前記起点ポーズ及び前記自律的に生成された前記追加ポーズを含む前記ポーズグループのそれぞれの前記ポーズのペアの間の移行を特定
    前記モーション計画ラティスは複数のノードと複数のエッジとを含み、前記ノードはそれぞれの状態を表し、前記エッジは前記モーション計画ラティス内の前記エッジのそれぞれの1つによって結合された前記ノードのそれぞれのペアによって表される前記状態のペアの間の有効な移行をそれぞれ表す、
    プロセッサベースのシステム。
  13. 前記少なくとも1つのプロセッサによって実行されたとき、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、
    視覚的に示された1つまたは複数の前記起点ポーズの運動学的検査を自律的に実行させる、請求項12に記載のプロセッサベースのシステム。
  14. 自律的に生成された前記追加ポーズの運動学的検査を自律的に実行するために、前記少なくとも1つのプロセッサは、
    ロボットの幾何学的形状に基づいて自律的に生成された前記追加ポーズの運動学的検査を自律的に実行する、請求項13に記載のプロセッサベースのシステム。
  15. 前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能な命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
    各前記ポーズのそれぞれの間の移行の衝突検査を自律的に行なわせる、請求項12に記載のプロセッサベースのシステム、
  16. 前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能な命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
    前記ポーズのそれぞれのペア間の各移行の衝突検査を自律的に実行させるためにプロセッサ実行可能な命令またはデータのうちの前記少なくとも1つは、前記起点ポーズと前記自律的に生成された追加ポーズとを含む前記ポーズグループ内の前記ポーズのペアのそれぞれの間のそれぞれの移行の衝突検査を自律的に実行させる、
    請求項9に記載のプロセッサベースのシステム。
  17. 前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
    ロボットが自己衝突しているか、またはワークスペース内の物体と衝突している場合に、前記ポーズグループから任意のポーズを自律的に排除する、請求項12に記載のプロセッサベースのシステム。
  18. 前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
    第1のサブラティス内のポーズと第2のサブラティス内のポーズとの間でポーズを接続するいくつかのサブラティス接続ポーズを自律的に生成させる、請求項12に記載のプロセッサベースのシステム。
  19. 前記少なくとも1つのプロセッサによって実行されるとき、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
    第1のサブラティス内のポーズと第2のサブラティス内のポーズとの間でポーズを接続するいくつかのサブラティス接続エッジを自律的に生成させる、請求項12に記載のプロセッサベースのシステム。
  20. 前記少なくとも1つのプロセッサによって実行されるときに、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
    有効なポーズと無効なポーズの視覚的に区別する視覚的提示を提供させる、請求項12に記載のプロセッサベースのシステム。
  21. 前記少なくとも1つのプロセッサによって実行されるときに、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
    プレゼンテーションウィンド内のロボットの視覚的表現における選択されたアイテムの並進または回転の少なくとも1つがドラッグ入力を介して指定されることを可能にする少なくとも1つのユーザインターフェース要素を提示させる、請求項12に記載のプロセッサベースのシステム。
  22. 前記少なくとも1つのプロセッサによって実行されるときに、プロセッサ実行可能命令またはデータのうちの前記少なくとも1つは、前記少なくとも1つのプロセッサに、さらに、
    プレゼンテーションウィンド内のロボットの視覚的表現における選択された関節の並進または回転のうちの少なくとも1つがドラッグ入力を介して指定されることを可能にする少なくとも1つのユーザインターフェース要素を提示させる、請求項12に記載のプロセッサベースのシステム。
JP2021561986A 2019-04-17 2020-04-15 モーション計画グラフ生成ユーザインターフェース、システム、方法、および物品 Active JP7511259B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962835139P 2019-04-17 2019-04-17
US62/835,139 2019-04-17
PCT/US2020/028343 WO2020214723A1 (en) 2019-04-17 2020-04-15 Motion planning graph generation user interface, systems, methods and articles

Publications (3)

Publication Number Publication Date
JP2022529681A JP2022529681A (ja) 2022-06-23
JPWO2020214723A5 JPWO2020214723A5 (ja) 2023-02-03
JP7511259B2 true JP7511259B2 (ja) 2024-07-05

Family

ID=72837681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021561986A Active JP7511259B2 (ja) 2019-04-17 2020-04-15 モーション計画グラフ生成ユーザインターフェース、システム、方法、および物品

Country Status (5)

Country Link
US (1) US12017364B2 (ja)
JP (1) JP7511259B2 (ja)
CN (1) CN113905855B (ja)
TW (1) TWI859220B (ja)
WO (1) WO2020214723A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12357406B2 (en) * 2019-03-20 2025-07-15 Covidien Lp Robotic surgical collision detection systems
US12263600B2 (en) * 2019-09-06 2025-04-01 Robert Bosch Gmbh Calibration method and apparatus for industrial robot, three-dimensional environment modeling method and device for industrial robot, computer storage medium, and industrial robot operating platform
GB2602331B (en) * 2020-12-23 2023-07-05 Adaptive Robotics As Motion planning
DE102021122606A1 (de) * 2021-09-01 2023-03-02 Arburg Gmbh + Co Kg Verfahren, Maschinensteuerung und Computerprogrammprodukt zur Bestimmung eines Pfades für eine Autonavigation
WO2023192270A1 (en) * 2022-03-28 2023-10-05 Seegrid Corporation Validating the pose of a robotic vehicle that allows it to interact with an object on fixed infrastructure
WO2024215573A2 (en) * 2023-04-10 2024-10-17 Bear Robotics, Inc. Method and system for controlling a robot
CN119987383A (zh) * 2025-04-15 2025-05-13 宁德思客琦智能装备有限公司 一种基于采样的多机器人路径规划系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080125893A1 (en) 2006-10-31 2008-05-29 Gm Global Technology Operations, Inc. Apparatus and Method of Automated Manufacturing
JP2018505788A (ja) 2015-01-26 2018-03-01 デューク・ユニバーシティDuke University 専用ロボットの動作を計画するハードウェアならびにその作製方法および使用方法
JP2018134703A (ja) 2017-02-21 2018-08-30 株式会社安川電機 ロボットシミュレータ、ロボットシステム及びシミュレーション方法

Family Cites Families (214)

* 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
JP2966706B2 (ja) 1993-10-05 1999-10-25 株式会社日立製作所 磨きロボットの自動教示方法
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
JPH1148177A (ja) 1997-07-31 1999-02-23 Tokico Ltd ロボットの教示装置
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
US8004229B2 (en) 2005-05-19 2011-08-23 Intuitive Surgical Operations, Inc. Software center and highly configurable robotic systems for surgery and other uses
US6526373B1 (en) 1999-10-08 2003-02-25 Dassault Systemes Optimization tool for robot placement
US6470301B1 (en) 1999-10-08 2002-10-22 Dassault Systemes Optimization tool for assembly workcell layout
JP2002073130A (ja) * 2000-06-13 2002-03-12 Yaskawa Electric Corp ロボットの大域動作経路計画方法とその制御装置
US6629037B1 (en) 2000-06-26 2003-09-30 Westerngeco, L.L.C. Optimal paths for marine data collection
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
US7130716B2 (en) 2003-04-22 2006-10-31 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
EP1738232A4 (en) 2004-04-22 2009-10-21 Frontline Robotics ARCHITECTURE OF OPEN CONTROL SYSTEM FOR AUTONOMOUS MOBILE 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
US20060241813A1 (en) 2005-04-22 2006-10-26 Applied Materials, Inc. Optimized cluster tool transfer process and collision avoidance design
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 トヨタ自動車株式会社 移動体の経路探索システム、経路探索方法及び経路探索プログラム
US8271132B2 (en) 2008-03-13 2012-09-18 Battelle Energy Alliance, Llc System and method for seamless task-directed autonomy for robots
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
JP2008134165A (ja) 2006-11-29 2008-06-12 Renesas Technology Corp ナビゲーションシステム
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
CN101925444B (zh) 2008-01-22 2012-07-04 松下电器产业株式会社 机械臂
EP2085279B1 (en) 2008-01-29 2011-05-25 Ford Global Technologies, LLC A system for collision course prediction
ES2553722T3 (es) 2008-02-20 2015-12-11 Abb Research Ltd. Método y sistema para optimizar la configuración de una célula de trabajo de robot
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
WO2010024794A1 (en) 2008-08-29 2010-03-04 Abb Research Ltd. Compliant apparatus for the tool at the end of an arm of an industrial robot
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 삼성전자 주식회사 로봇의 경로계획장치 및 그 방법
JP2010210592A (ja) 2009-03-12 2010-09-24 Terumo Corp 電子体温計及び表示制御方法
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
US8650965B2 (en) 2010-08-31 2014-02-18 Kabushiki Kaisha Yaskawa Denki Robot, robot system, robot control device, and state determining method
JP2012056023A (ja) 2010-09-09 2012-03-22 Toyota Motor Corp ロボットの動作生成システム及び動作生成方法
US9286810B2 (en) 2010-09-24 2016-03-15 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 本田技研工業株式会社 軌道計画方法、軌道計画システム及び軌道計画・制御システム
DE102012103830B4 (de) 2011-05-05 2022-05-25 Fanuc Robotics America Corp. Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen
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 株式会社安川電機 ピッキングシステム
JP5837065B2 (ja) 2011-06-29 2015-12-24 三菱電機株式会社 部品供給装置
CN103649994B (zh) 2011-07-05 2016-11-16 欧姆龙株式会社 用于投影体监测的方法和装置
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
WO2013140401A2 (en) 2012-03-22 2013-09-26 Israel Aerospace Industries Ltd. Planning and monitoring of autonomous-mission
JP5724919B2 (ja) 2012-03-22 2015-05-27 トヨタ自動車株式会社 軌道生成装置、移動体、軌道生成方法及びプログラム
KR20130112507A (ko) 2012-04-04 2013-10-14 인하대학교 산학협력단 S* 알고리즘을 이용한 이동로봇의 안전경로계획 수립방법
US8965580B2 (en) 2012-06-21 2015-02-24 Rethink Robotics, Inc. Training and operating industrial robots
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 유니버시티 오브 휴스턴 로봇 장치 및 영상 안내 및 로봇 지원 수술을 위한 시스템
JP2015526309A (ja) 2012-08-31 2015-09-10 リシンク ロボティクス インコーポレイテッド 安全ロボット動作のためのシステムおよび方法
JP6273084B2 (ja) 2012-09-20 2018-01-31 株式会社安川電機 ロボットシステムおよびワークの搬送方法
WO2014056533A1 (en) 2012-10-11 2014-04-17 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
EP3932628A1 (en) 2012-12-10 2022-01-05 Intuitive Surgical Operations, Inc. Collision avoidance during controlled movement of image capturing device and manipulatable device movable arms
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
US9233470B1 (en) 2013-03-15 2016-01-12 Industrial Perception, Inc. Determining a virtual representation of an environment by projecting texture patterns
JP5962560B2 (ja) 2013-03-22 2016-08-03 トヨタ自動車株式会社 経路探索装置、移動体、経路探索方法及びプログラム
US9753441B2 (en) 2013-05-13 2017-09-05 Massachusetts Institute Of Technology Controlling dynamical systems with bounded probability of failure
GB2546621B8 (en) 2013-05-23 2018-02-21 Q Bot Ltd Robotic vehicle
US9696160B2 (en) 2013-07-15 2017-07-04 Bae Systems Plc Route planning
US9493316B2 (en) 2013-07-30 2016-11-15 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
JP6057862B2 (ja) 2013-08-29 2017-01-11 三菱電機株式会社 部品供給装置および部品供給装置のプログラム生成方法
US9352465B2 (en) 2013-11-12 2016-05-31 Canon Kabushiki Kaisha Control method for robot apparatus and robot apparatus
CN103722565B (zh) 2014-01-23 2015-09-16 哈尔滨工业大学 仿人机器人自碰撞监控系统及监控方法
WO2015113203A1 (en) 2014-01-28 2015-08-06 Abb Technology Ltd Method and apparatus for optimizing performance of robotic cell
US9387589B2 (en) * 2014-02-25 2016-07-12 GM Global Technology Operations LLC Visual debugging of robotic tasks
JP5897624B2 (ja) 2014-03-12 2016-03-30 ファナック株式会社 ワークの取出工程をシミュレーションするロボットシミュレーション装置
US9701018B2 (en) 2014-04-01 2017-07-11 Bot & Dolly, Llc Software interface for authoring robotic manufacturing process
JP5877867B2 (ja) 2014-04-25 2016-03-08 ファナック株式会社 複数台のロボットのシミュレーション装置
KR102165437B1 (ko) 2014-05-02 2020-10-14 한화디펜스 주식회사 이동 로봇의 경로 계획 장치
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
WO2016050274A1 (en) 2014-09-30 2016-04-07 Nec Europe Ltd. Method and system for determining a path of an object for moving from a starting state to an end state set avoiding one or more obstacles
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
JP2016099257A (ja) 2014-11-21 2016-05-30 キヤノン株式会社 情報処理装置及び情報処理方法
CN104407616B (zh) 2014-12-03 2017-04-26 沈阳工业大学 基于免疫网络算法的移动机器人动态路径规划方法
DE102015101023A1 (de) 2015-01-23 2016-07-28 Pilz Gmbh & Co. Kg Elektronisches Sicherheitsschaltgerät
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
US9580219B2 (en) 2015-06-30 2017-02-28 Anchor Packaging Tamper evident plastic food container
US20170004406A1 (en) 2015-06-30 2017-01-05 Qualcomm Incorporated Parallel belief space motion planner
US9815198B2 (en) 2015-07-23 2017-11-14 X Development Llc System and method for determining a work offset
US9707681B2 (en) 2015-07-27 2017-07-18 Siemens Industry Software Ltd. Anti-collision management of overlapping robotic movements
JP6752615B2 (ja) 2015-07-29 2020-09-09 キヤノン株式会社 情報処理装置、情報処理方法、ロボット制御装置及びロボットシステム
KR101724887B1 (ko) 2015-08-10 2017-04-07 현대자동차주식회사 전방 도로 형상과 연결을 분석해 차선 변경과 타이밍을 결정하는 자율주행 제어 장치 및 방법
KR20180044946A (ko) 2015-08-25 2018-05-03 카와사키 주코교 카부시키 카이샤 복수의 로봇시스템간의 정보공유시스템 및 정보공유방법
WO2017056374A1 (ja) 2015-09-29 2017-04-06 ソニー株式会社 被害低減装置、被害低減方法およびプログラム
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 キヤノン株式会社 ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
JP6816364B2 (ja) * 2016-02-25 2021-01-20 セイコーエプソン株式会社 制御装置、ロボット、及びロボットシステム
WO2017151926A1 (en) 2016-03-03 2017-09-08 Google Inc. Deep machine learning methods and apparatus for robotic grasping
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
EP3452340B1 (en) 2016-05-05 2020-09-30 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
ES2903532T3 (es) 2016-06-10 2022-04-04 Univ Duke Planificación de movimiento para vehículos autónomos y procesadores reconfigurables de planificación de movimiento
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)
JP6855492B2 (ja) 2016-09-02 2021-04-07 倉敷紡績株式会社 ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
US10131053B1 (en) 2016-09-14 2018-11-20 X Development Llc Real time robot collision avoidance
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
US11166770B2 (en) 2016-09-19 2021-11-09 Intuitive Surgical Operations, Inc. Base positioning system for a controllable arm and related methods
DE102016120763B4 (de) 2016-10-31 2019-03-14 Pilz Gmbh & Co. Kg Verfahren zur kollisionsfreien Bewegungsplanung
EP3555569A1 (en) 2016-11-09 2019-10-23 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
US11040450B2 (en) 2017-02-07 2021-06-22 Veo Robotics, Inc. Dynamically determining and monitoring workspace safe zones using semantic representations of workpieces
US11541543B2 (en) 2017-02-07 2023-01-03 Veo Robotics, Inc. Dynamic, interactive signaling of safety-related conditions in a monitored environment
DE102017102749A1 (de) 2017-02-13 2018-08-16 Festo Ag Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems
JP6877192B2 (ja) 2017-03-03 2021-05-26 株式会社キーエンス 画像処理装置、画像処理方法、画像処理プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
JP2018144158A (ja) 2017-03-03 2018-09-20 株式会社キーエンス ロボットシミュレーション装置、ロボットシミュレーション方法、ロボットシミュレーションプログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
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
JP6705976B2 (ja) 2017-05-11 2020-06-03 株式会社安川電機 ロボット、ロボットの制御方法、ワークの製造方法
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
JP6897376B2 (ja) 2017-07-11 2021-06-30 トヨタ自動車株式会社 移動計画装置、移動ロボット、および移動計画プログラム
JP6879464B2 (ja) 2017-08-02 2021-06-02 オムロン株式会社 干渉判定方法、干渉判定システム及びコンピュータプログラム
CN107486858A (zh) 2017-08-08 2017-12-19 浙江工业大学 基于RoboDK的多机械臂协同离线编程方法
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
US10571921B2 (en) 2017-09-18 2020-02-25 Baidu Usa Llc Path optimization based on constrained smoothing spline for autonomous driving vehicles
US10928832B2 (en) 2017-09-29 2021-02-23 Huawei Technologies Co., Ltd. Impedance-based motion control for autonomous vehicles
EP3486612B1 (en) 2017-11-20 2020-07-01 Robert Bosch GmbH Method for generating a trajectory
CN108297059B (zh) 2017-11-24 2020-11-10 浙江国自机器人技术有限公司 新型智能安防机器人及其自动巡检方法
US10466707B2 (en) 2017-12-22 2019-11-05 X Development Llc Planning robot stopping points to avoid collisions
TWI822729B (zh) * 2018-02-06 2023-11-21 美商即時機器人股份有限公司 用於儲存一離散環境於一或多個處理器之一機器人之運動規劃及其改良操作之方法及設備
AT520958A1 (de) 2018-03-09 2019-09-15 Tgw Logistics Group Gmbh Robotersystem mit an Warentypen angepassten Bewegungsabläufen und Betriebsverfahren hierfür
PL3769174T3 (pl) 2018-03-21 2022-10-24 Realtime Robotics, Inc. Planowanie przemieszczania robota do różnych środowisk i zadań oraz jego ulepszone działanie
CN108942920A (zh) 2018-05-30 2018-12-07 北京极智嘉科技有限公司 一种加工食品的拣选系统和方法
US11216009B2 (en) 2018-06-25 2022-01-04 Intrinsic Innovation Llc Robot coordination in a shared workspace
CN108789416B (zh) 2018-07-27 2023-12-19 中国科学院自动化研究所 用于控制双机械臂柔性带电作业的系统及方法
EP3820656A4 (en) 2018-08-23 2021-08-25 Realtime Robotics, Inc. COLLISION DETECTION FOR MOTION PLANNING OF ROBOTS
US10809732B2 (en) 2018-09-25 2020-10-20 Mitsubishi Electric Research Laboratories, Inc. Deterministic path planning for controlling vehicle movement
US12204336B2 (en) 2018-12-04 2025-01-21 Duke University Apparatus, method and article to facilitate motion planning in an environment having dynamic objects
CN109782763B (zh) 2019-01-18 2021-11-23 中国电子科技集团公司信息科学研究院 一种动态环境下的移动机器人路径规划方法
US11314254B2 (en) * 2019-03-26 2022-04-26 Intel Corporation Methods and apparatus for dynamically routing robots based on exploratory on-board mapping
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 株式会社日立製作所 軌道計画装置、軌道計画方法及びプログラム
KR20200129045A (ko) 2019-05-07 2020-11-17 모셔널 에이디 엘엘씨 차량의 궤적을 계획 및 업데이트하기 위한 시스템 및 방법
TWI699636B (zh) 2019-05-21 2020-07-21 華邦電子股份有限公司 協同型機器人控制系統和方法
IL295168A (en) 2020-01-28 2022-09-01 Innosapien Agro Tech Private Limited Methods, devices, systems and computer program products for sensor systems
US11623494B1 (en) 2020-02-26 2023-04-11 Zoox, Inc. Sensor calibration and verification using induced motion
CN114073585B (zh) 2020-08-19 2025-09-16 北京术锐机器人股份有限公司 机器人系统以及控制方法
TWM615691U (zh) 2021-05-17 2021-08-11 金和利股份有限公司 打釘槍之釘槽送釘裝置
TWM653130U (zh) 2023-11-09 2024-03-21 香港商埃爾加托艾迪斯普雷有限公司 磁浮按鍵結構

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080125893A1 (en) 2006-10-31 2008-05-29 Gm Global Technology Operations, Inc. Apparatus and Method of Automated Manufacturing
JP2018505788A (ja) 2015-01-26 2018-03-01 デューク・ユニバーシティDuke University 専用ロボットの動作を計画するハードウェアならびにその作製方法および使用方法
JP2018134703A (ja) 2017-02-21 2018-08-30 株式会社安川電機 ロボットシミュレータ、ロボットシステム及びシミュレーション方法

Also Published As

Publication number Publication date
US20220193911A1 (en) 2022-06-23
JP2022529681A (ja) 2022-06-23
TW202103875A (zh) 2021-02-01
WO2020214723A1 (en) 2020-10-22
US12017364B2 (en) 2024-06-25
TWI859220B (zh) 2024-10-21
CN113905855A (zh) 2022-01-07
CN113905855B (zh) 2023-08-25

Similar Documents

Publication Publication Date Title
JP7511259B2 (ja) モーション計画グラフ生成ユーザインターフェース、システム、方法、および物品
US12090668B2 (en) Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same
CN102814813B (zh) 在多机器人系统中自动防止死锁的方法和系统
US20240009845A1 (en) Systems, methods, and user interfaces employing clearance determinations in robot motion planning and control
US9144904B2 (en) Method and system for automatically preventing deadlock in multi-robot systems
EP2923805A2 (en) Object manipulation driven robot offline programming for multiple robot system
EP3673334B1 (en) Method for engineering autonomous system with reusable skills
JP2019171501A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム
US20220395985A1 (en) Information processing apparatus, information processing method, display apparatus, display method, robot system, article production method, program, and storage medium
TW202348377A (zh) 用於在共享工作空間中之機器人之使用階段姿態之動作規劃及控制
WO2018229540A1 (en) Method and system for teaching a robot in reaching a given target in robot manufacturing
HK40060516A (en) Motion planning graph generation user interface, systems, methods and rules
EP3940577B1 (en) Method for designing a three-dimensional mesh in a 3d scene
CN114761183B (zh) 用于为机器人系统开发神经技能的计算机化工程工具和方法
US20250256400A1 (en) A method and a system for detecting possible collisions of objects in an industrial manufacturing environment
JP2019171500A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム
Moyaers et al. Collision-free trajectory generation for welding robots: analysis and improvement of the Descartes algorithm
EP4202622A1 (en) Setting typed parameter

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240215

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: 20240604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240618