JP2023088293A - オンライン自動インターロック戦略 - Google Patents
オンライン自動インターロック戦略 Download PDFInfo
- Publication number
- JP2023088293A JP2023088293A JP2022196775A JP2022196775A JP2023088293A JP 2023088293 A JP2023088293 A JP 2023088293A JP 2022196775 A JP2022196775 A JP 2022196775A JP 2022196775 A JP2022196775 A JP 2022196775A JP 2023088293 A JP2023088293 A JP 2023088293A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- motion
- overlap
- robots
- region
- 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.)
- Pending
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 187
- 238000000034 method Methods 0.000 claims abstract description 111
- 230000003044 adaptive effect Effects 0.000 claims abstract description 16
- 238000010924 continuous production Methods 0.000 claims description 22
- 230000002265 prevention Effects 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 9
- 238000003466 welding Methods 0.000 claims description 9
- 238000007592 spray painting technique Methods 0.000 claims description 7
- 239000000463 material Substances 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 230000006978 adaptation Effects 0.000 claims description 2
- 239000011324 bead Substances 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 12
- 238000012545 processing Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 42
- 230000008569 process Effects 0.000 description 28
- 229910003460 diamond Inorganic materials 0.000 description 23
- 239000010432 diamond Substances 0.000 description 23
- 238000011112 process operation Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000011069 regeneration method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000012636 effector Substances 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000000449 premovement Effects 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0084—Programme-controlled manipulators comprising a plurality of manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0084—Programme-controlled manipulators comprising a plurality of manipulators
- B25J9/0087—Dual arms
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1674—Programme controls characterised by safety, monitoring, diagnostic
- B25J9/1676—Avoiding collision or forbidden zones
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39135—For multiple manipulators operating at same time, avoid collision
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
【課題】マルチロボットシステムのデッドロック回避動作の計画技術を提供する。【解決手段】この技術は、次に現れるロボット動作区分の掃引容積のオンライン計算を含み、掃引容積を使用して1つ又は複数の重複領域を計算し、全てのロボット制御装置に発行する。掃引容積の計算は、ジャンプ及びオフセットなどの適応状態を含む、実際の次に現れる工具経路に基づくものである。ロボット制御装置は、時間ステップごとに、重複領域に進入するか否かと、別のロボットが既に領域内に存在するか否かとを確認する。ロボットが、占有される領域に自身が進入しようとしていると判定すると、ロボットはその領域が空になるまで位置を保持する。ロボットは、他のロボットの認知のために領域の出入りを発行する。デッドロックの状態を自動的に解消するための優先順位を確立し、連続処理操作を実施するロボットの動作区分の完了を優先するために、追加の論理が追加される。【選択図】図6
Description
本開示は、概して産業用ロボットの動作制御の分野に-関し、さらに詳細には、次に現れるロボット動作区分の掃引容積を使用して1つ又は複数の重複領域を計算し、関連するロボットのいずれかによる各重複領域の占有を監視し、いずれかのロボットが重複領域に進入すると、関連する他のいずれかのロボットが重複領域に進入することを、ロボットが退避するまで防止するマルチロボットシステムのデッドロック回避動作の計画技術に関する。
産業用ロボットを使用して、幅広い製造、組み立て及び材料移動操作を実施することが周知である。多くのロボット作業空間環境では、2台以上のロボットが同時に動作して、スポット溶接、吹き付け塗装又はコンベア上のピックアンドプレースなどの操作を実施している。2台以上のロボットが作業空間にて共に作業している場合、衝突を防ぐためにその動作を計画し、制御する必要がある。マルチロボットシステムにおけるロボット同士の衝突回避を含む衝突回避動作の計画技術が、当技術分野で知られている。
衝突回避に加えて、マルチロボットシステムにはデッドロックの状態の発生の防止を試みる必要がある。例えば、2台のロボットのシステムにおけるデッドロックとは、各ロボットが他のロボットの経路を阻止し、その結果、どちらのロボットも衝突を引き起こすことなく、その計画された動作経路に沿って前進することができない場合である。デッドロックが発生すると、ロボットのうちの少なくとも1台が後方に移動するか、その計画された経路からルートを変更して、衝突のない動作を再開することができるようにする必要がある。デッドロックの状態は、ロボットの生産性を低下させるだけでなく、塗装又は溶接などの操作が望ましくない方法で中断された場合にワークが台無しになる可能性があるため、可能な限り回避する必要がある。干渉検査だけでは、デッドロックを防ぐことはできない。
手動の方法及び自動化された方法を含むデッドロックを回避するための技術が、当技術分野で知られている。潜在的なデッドロックの状態を手動で識別し、インターロックをロボット動作プログラムに追加してデッドロックを防止することは、非常に面倒で時間のかかる方法である。このため、動作プログラムの実行前に掃引容積及び重複領域をオフラインで計算し、実行前に動作プログラムに重複領域の進入/退出事項を挿入する方法を含む、自動化されたデッドロック回避技術が開発された。この技術は、手動の方法よりも時間がかからず、特定のロボット動作プログラムでデッドロックを防ぐのに効果的である。しかし、掃引容積及び重複領域のオフライン計算では、特定の種類の動作の事項(工具先端点ジャンプなど)を伴う動作プログラムにおけるデッドロック防止と、位置登録又は他の技術を介して実行中に工具先端点の位置がオンラインで取得されるときと、を適切に処理することができない。
上記の状況に照らして、設定が容易で、ロボット実行中にオンラインで計算される適応動作制御区分を含むマルチロボットシステムにおけるデッドロックを防止する、改善されたデッドロック防止技術が必要である。
本開示の教示に従って、マルチロボットシステムのためのデッドロック回避動作の計画技術を開示する。この技術は、次に現れるロボット動作区分の掃引容積のオンライン計算を含み、個々のロボットの掃引容積を使用して、全てのロボット制御装置に発行される1つ又は複数の重複領域を計算する。掃引容積の計算は、ジャンプ及びオフセットなどの適応状態を含み、実際の次に現れる工具経路に基づくものである。各ロボット時間ステップでは、ロボット制御装置は、重複領域に進入することになるか否かを確認し、進入することになる場合は、別のロボットが既に領域内にあるか否かを確認する。既に占有されている領域にロボットが進入しようとしていると判定すると、ロボットは、その位置を、他のロボットがその領域を空けるまで保持する。ロボットは、他のロボットの認知のために、領域への進入事項および退出事項を発行する。初期のデッドロックの状態を自動的に解消し、塗装又は溶接などのプロセス操作を実施しているロボットの動作区分の完了を優先するための優先順位を確立するための追加論理を追加する。
現在に開示している装置及び方法の追加の特徴は、添付の図面と併せて、以下の説明及び添付の特許請求の範囲から明らかになるであろう。
ロボット動作計画におけるデッドロック回避を対象とする本開示の実施形態の以下の考察は、本質的に単なる例示であり、開示した装置及び技術又はその用途又は使用を限定することを意図するものでは決してない。
さまざまな製造、組み立て及び材料移動操作に産業用ロボットを使用することが周知である。2台以上のロボットが作業空間で共に作業している場合、その動作を計画し制御して、衝突を防ぎ、デッドロックを回避する必要がある。
図1は、車体ワーク120の近くで作業する2台の産業用ロボット(100,110)の図である。ロボット100及び110の動作を、当技術分野で知られているように、ロボット制御装置によって制御する。ロボット100は制御装置102を有し、ロボット110は制御装置112を有する。ロボット100及び110の動作は、衝突を防止するために調整される必要があるため、制御装置102及び112は互いに通信している。さらに、このほか、制御装置102及び112と通信する別個のコンピュータ130を設けてもよい。ここで、このコンピュータ130は、ロボットが動作する作業セル又は作業空間の全体的な活動を制御するプログラマブルロジックコントローラ(PLC)又は他のタイプの計算装置であることがあり得る。例えば、材料を移動する用途では、コンピュータ130は、コンベヤ上の入荷部品の利用可能性及び場所に関連してロボットの動作を調整することがあり得る。
図1の作業空間では、ロボット100及び110は、ワーク120のさまざまな場所にてスポット溶接作業を実施している。スポット溶接は、車体の内部の場所を含み、ロボット100及び110がドア開口部の内側に到達することを必要とする。この用途では、車体ワーク120自体が、ロボット100及び110の動作に対する障害物である。さらに、ロボット100と110の動作が重複する場合がある。これは、ロボット100と110が互いに障害物となる可能性があることを意味する。ロボット100及び110の操作には、計画された全ての動作に対して実施される干渉検査の計算が必要である。
マルチロボットシステムにおけるロボット同士の衝突回避を含む衝突回避の動作計画技術が、当技術分野で知られている。衝突回避に加えて、マルチロボットシステムはデッドロックの状態の発生の防止を試みなければならない。デッドロックでは、ロボットが互いの経路を阻止し、その結果、衝突を発生させずに、計画された動作経路に沿ってそれ以上ロボットを動かすことができない。デッドロックが発生した場合、ロボットのうちの少なくとも1台が後方に移動するか、経路を変更して衝突のない動作を再開することができるようにする必要がある。デッドロックの状態は可能な限り回避する必要がある。干渉検査だけでは、デッドロックを防ぐことはできない。
図2は、2台のロボットのシステムにおけるデッドロックの状態の単純化した2次元(2D)図である。ロボット200及びロボット220を、基部、ロボットアーム及び工具又はエンドエフェクタを有する単純なロボットとして上面(平面)図で示す。ロボット200は、経路212に沿って矢印214で示す方向に移動する工具210を有し、ロボット220は、経路232に沿って矢印234で示す方向に移動する工具230を有する。ロボット200もロボット220も、衝突を引き起こさずにその経路に沿ってその工具をさらに動かすことができないため、デッドロックの状態が図2に存在する。本質的に、ロボット200とロボット220の両方が経路212と経路232との間の領域である重複領域240に進入した時点で、デッドロックは避けられないものであった。当業者であれば理解するように、一方のロボット(例えば、ロボット220)は、他方のロボット(ロボット200)が重複領域240の外に留まる限り、重複領域240に進入し、その工具をその経路に沿って動かし続けることができる。
両方のロボットが重複領域240に進入した時点で、デッドロックの状態が存在し、唯一の解決策は、ロボットの1つが進路を逆にする(後退する)か、工具経路を変更することである。これは明らかに望ましい状況ではない。手動の方法及び自動化された方法を含む、デッドロックを防止するか回避するための技術が、当技術分野で知られている。
図3は、当技術分野で知られている技術による、工具経路重複領域を分析し、ロボット動作プログラムにインターロックのチェックポイントを挿入することによってデッドロックを防止する手動技術の2次元図である。ロボット300及びロボット310のそれぞれは、マルチリンクロボットアーム及び工具を備え、図2に関して上記で考察した方法で、上面図にて簡略化された形態で示されている。ロボット300は、工具経路302をたどる工具を有し、ロボット310は、工具経路312をたどる工具を有する。重複領域320が、工具経路302と工具経路312との間の交差空間に存在する。デッドロックを回避する既知の方法とは、インターロック又はチェックポイントをロボット300及び310の動作プログラムに追加することである。ロボットが、動作プログラムにおいてインターロックに到達すると、先に進む前に他のロボットの状況を検査する。
チェックポイントを手動で追加する技術の1つを図3に示す。点1を、ロボット310に最も近い工具経路302に沿った点として識別する。点4を、ロボット300に最も近い工具経路312に沿った点として識別する。次に、点1からロボット310の基部までの線に直交する線などの線「a」を引く。次に、インターロック点2及び3をロボット310の動作プログラムに追加する。同じように、点4からロボット300の基部までの線に直交する線「b」を引く。ロボット300の動作プログラムにインターロック点5及び6を追加する。
ロボット310がその工具を工具経路312に沿って時計回り方向に移動させる場合、工具がインターロック点2に到達すると、ロボット310は先に進む前にロボット300の状況を検査する。ロボット310は、ロボット300が重複領域320から離れていることがわかっている場合にのみ、その工具経路312に沿って進む。ロボット310がインターロック点2を通過すると、ロボット310は重複領域320に実質的に進入したことを報告し、その結果、ロボット300は離れたまま維持することを認識する。ロボット310が工具経路312に沿って移動し、インターロック点3に到達すると、ロボット310が重複領域320を退出したことを報告し、その結果、ロボット300は進入してもよい。ロボット300は、インターロック点5を使用して、重複領域320に進入する前に確認し、その後、進入を報告し、インターロック点6を使用して、重複領域320から退出することを報告する。
図3の簡略化された2Dの図でも、インターロック点をロボット動作プログラムに手動で追加するには、余分な作業が必要であることがわかる。この技術はこのほか、ロボットが、重複領域320から実際に離れた状態を維持するために、必要以上の位置に保持することになるため、インターロック点を定義する際に控えめな単純化が使用されることにより、非効率性を生み出す。
図2及び図3は、見やすい状態を維持するために2次元で説明されている。実際のロボットの動作では、各ロボットが占有する空間と、空間の重複領域とは複雑な3次元(3D)形状である。しかし、重複領域の複数のロボット占有を防止するという概念は、図2及び図3に説明される方法と同じ方法で3D空間に適用される。これについては以下で考察する。
図4は、デッドロック回避ロボット動作計画の必要性を示す掃引容積の重複領域を含む、図1の2台のロボットの掃引容積の図である。図4は、図1とは反対の視点から見たロボット100及び110を示す。ロボット100及び110は、図4の定位置にて概説されている。掃引容積108及び118は、任意の適切な技術を使用して計算される。掃引容積108は、ロボット100の動作プログラムのある時点で占有される容積であり、掃引容積118は、ロボット110の動作プログラムのある時点で占有される容積である。典型的には、ロボット掃引容積の計算は、各ロボットの各構成要素の3D幾何学モデル(CADモデルなど)から開始し、ロボットが、その動作プログラムのステップを進むにつれて累積される範囲は徐々に追加される。占有容積を表すためにボクセル(立方体又はレンガ形状の体積要素)を使用する技術および他の技術を含むロボット掃引容積を計算する技術が当技術分野で知られている。
重複容積410は、掃引容積108と掃引容積118の両方の中にある(両方に共通する)空間である。重複容積410は必ずしも衝突が発生することを示しているわけではないが、ロボット100及び110は、異なる時間にそれぞれの掃引容積の重複部分を占有している可能性があるため、重複容積410の存在は、衝突回避干渉検査がロボットの動作中に実施されなければならないことを示し、デッドロックの状態が発生する可能性があり、デッドロックの回避もロボット動作プログラミングに含める必要があることを示す。
図4は、実際のロボットの掃引容積及び重複領域に関与する3D幾何学の複雑さと、図3に示す手動の方法をそのような複雑な3D幾何学に適用することの難しさを示している。このため、動作プログラムの実行に先立って掃引容積と重複領域をオフラインで計算し、実行前に動作プログラムに重複領域の進入/退出インターロックを挿入する方法を含む自動化されたデッドロック回避技術が開発された。この技術は、図3の手動の方法よりも時間がかからず、特定のロボット動作プログラムのデッドロックを防ぐのに効果的である。しかし、掃引容積と重複領域の(ロボット動作前の)オフライン計算は、工具先端点のジャンプなどの特定のタイプの動作事項を伴って適応動作プログラムのデッドロック防止と、位置登録又は他の技術を介して実行中に工具先端点の位置がオンラインにて取得されるときと、を適切に処理することができない。
本開示は、ロボット動作中に完全にオンラインで実施されるデッドロック防止技術を提供する。この技術は、リアルタイムで解決されるジャンプ及び位置登録オフセットなどの適応事項が工具経路に影響を及ぼす動作プログラムに対しても、掃引容積と重複領域を正確に計算する。
図5は、本開示の一実施形態におけるデッドロック防止のためのオンラインインターロックの定義を含むマルチロボットシステム500の上位のブロック図である。システム500は、共通の作業空間で動作する少なくとも2台のロボットを含む。図5に示す例は、参照番号510によって識別されるロボット1、参照番号520によって識別されるロボットN、及び参照番号530によって識別されるロボット「i」を含む「N」台のロボットを含む。ロボット「i」は、ロボット530と呼ばれることになり、システム500内の全てのロボットの代表を表す。ロボット510/520/530のそれぞれは、図1に示すように、ロボット自体及びロボット制御装置を含む。このほか、単一のロボット制御装置が複数のロボットを制御してもよい。
作業空間管理装置モジュール540は、ロボット510/520/530のそれぞれの制御装置と通信するソフトウェアモジュールである。作業空間管理装置モジュール540は、ロボットのうちの1つの制御装置で作動することも、図1に示すコンピュータ130などの別個のコンピュータ上で作動することもあり得る。作業空間管理装置モジュール540は、現在開示している技術に従って、重複領域と、リアルタイムの領域のロボット占有状態との追跡を維持する。
ロボット530及び作業空間管理装置モジュール540の行動及び相互作用について、図5に関して高水準で考察し、以下でさらに詳細に説明する。それぞれのロボット510/520/530は、同じ方法で作業空間管理装置モジュール540と相互作用することを理解されたい。ロボット530の制御装置は、上位の動作計画装置及び下位の動作補間器機能を含む、ボックス532に示す動作計画機能を実施する。ボックス532で概説するように、上位の計画装置は、ロボット530の利用可能で次に現れる動作区分から掃引容積を生成する。動作区分とは、「点P77まで直線に移動せよ」など、ロボット動作プログラム内のコマンドである。当業者に知られているように、多くの異なるタイプのロボット動作コマンドが動作プログラミングに利用可能である。ジャンプ及び位置登録などの適応動作プログラミング特徴により、動作プログラム全体を事前に計算することができない場合がよくある。しかし、ある時点で、位置登録に値が入力され、ジャンプ(跳躍)などの他の適応特徴が解決され、いくつかの次に現れる動作区分が明確になる。例えば、次の2つの動作区分が確定している場合、上位の計画装置は、そのような次の2つの動作区分の掃引容積を計算することになる。
本開示の技術は、個々のロボット動作区分の掃引容積の計算と、2つ以上の掃引容積の共通部分である重複領域の計算とを含む。掃引容積及び重複領域を計算するための任意の適切な方法を使用し得ることを理解されたい。
上位の計画装置は、計算された掃引容積を作業空間管理装置モジュール540に送信するか発行する。作業空間管理装置モジュール540は、システム内の全てのロボット510~530の掃引容積間に発生する重複領域を計算する。ある時点では、ロボットが作業空間の離れた部分で作業しているため、掃引容積間に重複領域がない場合がある。他の時点では、ロボットの異なる対を含む領域など、ロボットの掃引容積間に2つ以上の重複領域が存在する場合がある。作業空間管理装置モジュール540は、有効な重複領域を、各重複領域に関与する全てのロボットに発行する。各重複領域の3D幾何学的形状を発行するとともに、作業空間管理装置モジュール540は、各領域に関与するロボットの識別情報と、各重複領域を現在占有している任意のロボットの識別情報とを継続的に発行する。
ロボット530に戻ると、下位の補間器は、現在の動作区分の次に現れる時間ステップごとに実際のロボット動作(関節コマンド)を計算する。ロボットを移動させる前に下位の補間器は、作業空間について、間近の動作によってロボットが作業空間管理装置モジュール540によって発行された重複領域に進入するか否かを判定する。間近の動作によってロボットが重複領域に進入する場合に、ロボット制御装置は、別のロボットが既に重複領域を占有しているか否かを判定する。別のロボットが既に重複領域を占有している場合に、制御装置はロボットを動かさない。即ち、制御装置は、重複領域を同時に占有している2台のロボットによるデッドロックの状態を回避するように、ロボットを現在の位置に保持する。別のロボットが未だ重複領域を占有していない場合、制御装置は、下位の補間器によって計算された時間ステップ関節コマンドに従ってロボットを動かす。重複領域に進入すると、補間器モジュールは、このほかに上記で考察したように占有の追跡を維持している作業空間管理装置モジュール540に進入したことを発行する。補間器モジュールはこのほか、重複領域の退出事項を作業空間管理装置モジュール540に発行する。
上記のプロセスは、ロボットがそれぞれのタスク(例えば、溶接、吹き付け塗装など)を実施している間、ロボットの操作全体にわたって継続する。各ロボットは、利用可能な次に現れる動作区分の掃引容積を計算する。作業空間管理装置モジュール540は、ロボットの掃引容積から重複領域を計算し、重複領域の占有を追跡し、領域とその状況を発行する。各ロボットは、動作の各時間ステップ(又は補間点)の前に重複領域の状況を検査して、占有されている重複領域に進入しないことを確実なものにする。開示した技術の追加の特徴及び能力を以下で考察する。
図6は、本開示の一実施形態における図5に示す作業空間管理装置モジュール540の特徴を示すブロック図である。図6は、作業空間管理装置への入力と、作業空間管理装置による計算及び結果として得られるデータと、作業空間管理装置からの出力と、を示している。
ボックス610は、作業空間管理装置がシステム内のロボット(例えば、図5のロボット510/520/530)の上位の計画装置モジュールから受信した入力を示す。これまでに考察したように、各ロボットは、利用可能で確定している各動作区分の掃引容積を発行する。ボックス610では、図5と同じように、ロボット「i」には1からNまでの番号が付けられている。例えば、第1の動作区分から開始して、第1のロボットは、「Seg1-1」というラベルの付いた掃引容積612を発行する。「Seg1-1」は、ロボット1からのものであり、動作区分番号1であることを示す。ロボット1は、ロボット1からのものであり動作区分番号「X」であることを示す「Seg1-X」としてラベル付けされた掃引容積614まで掃引容積を発行し続ける。同じように、N台のロボットのそれぞれは、動作区分が利用可能になると、それぞれの動作区分ごとに、ロボット番号と動作区分番号とでラベル付けされた掃引容積を発行する。各ロボットは、このほか、以前に発行された掃引容積(「Seg1-1」又は612など)の1つが完了すると、作業空間管理装置にメッセージを送信する。各ロボットの上位の計画装置が掃引容積データを送信するために使用するプロセスを図7に示す。
好ましい一実施形態では、各掃引容積は、1つの動作区分のロボット動作を含む。吹き付け塗装、レーザ/アーク溶接又は材料分配などの連続的なプロセスを実施するロボットに特に適した別の実施形態では、動作区分の全部を中断することなく完了する必要があるため、ロボットが連続プロセスに含まれる全ての動作区分のロボットの動作を定義する単一の掃引容積を発行する。この実施形態について、以下でさらに考察する。
ロボットからの利用可能な掃引容積(ボックス610)をボックス620において作業空間管理装置に提供する。ここで、掃引容積間の重複領域を計算する。ここでも、ロボット制御装置による掃引容積の発行は、ロボットの操作中にリアルタイムで継続されることが強調される。各ロボット制御装置は、動作区分が利用可能になると(確定されると)、その掃引容積を個別に発行する。図4に示すように、各重複領域は、2つ以上の掃引容積の共通部分によって定義される。重複領域は、典型的には、不規則な形状の3D容積であり、ボクセル(立方体又はレンガ状の体積要素)によって定義されても、他の3D立体又は表面幾何学定義技術によって定義されてもよい。
ボックス620からの重複領域は、作業空間管理装置によって管理される重複領域プール630に提供される。重複領域プール630は、番号1からMまでの範囲の重複領域を含むように示されている。代表的な重複領域「m」(632)では、各重複領域でどの情報が管理されるかを示す。情報には、重複容積の3D定義と、重複領域に関与する各ロボットからの区分番号と、関連するロボット(重複領域に関与する区分を有するロボット)のリストと、現在重複領域にあるロボット(存在する場合)のリストとが含まれる。
ボックス640は、作業空間管理装置によりシステム内のロボットの下位の補間器モジュールから受信された入力を示す。既に占有されている重複領域にロボットが進入しないことを確実なものにするという下位の補間器の役割に加えて、補間器は、この他に、ロボットが特定の重複領域にいつ出入りしたかを示すメッセージを発行する。メッセージ642は、ロボット「i」が重複領域「m」に進入した(または退出した)ことを示している。各ロボットの下位の補間器が掃引容積データを送信するために使用するプロセスを図8に示す。
メッセージ642は、ボックス650において作業空間管理装置によって使用されて、重複領域プール630内の重複領域データを更新する。ボックス650にて作業空間管理装置が「領域から退出した」というメッセージを受信した場合、作業空間管理装置は、重複領域「m」の領域内ロボットリストからロボット「i」を除去する。同じように、ボックス650にて「領域に進入した」というメッセージを作業空間管理装置が受信した場合、作業空間管理装置はロボット「i」を重複領域「m」の領域内ロボットリストに追加する。
ボックス660では、重複領域プール630内の重複領域が追加されるか、削除されるか、状況変更されるといつでも、影響を受ける重複領域は、影響を受けるロボットに発行(出力)される。例えば、重複領域「m」の領域発行メッセージ662を考慮すると、ここで、領域「m」は、関連するロボット(i、j及びk)への重複容積と、それぞれの動作区分番号と共に以前に発行されたものである。領域発行メッセージ662は、ロボット「i」を領域内ロボットリストに追加する。このリストは、以下で考察するように、全ての関連するロボットにとって重要な情報である。他の領域発行メッセージの例においては、ロボット「i」が領域「m」を退出した(このため、領域内ロボットリストが空である)ことを示す後のメッセージと、ロボットから受信した最新の掃引容積に基づいて存在しなくなった領域「m」を示すさらに後のメッセージと、が含まれる。
図7は、本開示の一実施形態における図5に示すようなマルチロボットシステムにおけるそれぞれのロボットに対して上位の計画装置モジュールによって使用される方法のフローチャート図700である。方法は、開始ブロック702から、決定ひし形704に進み、新たな動作区分が利用可能か否かが判定される。新たな動作区分は、ロボットが発行した掃引容積に以前は含まれていなかった動作区分である。ここで、新たな動作区分は完全に定義されている(例えば、工具先端点のジャンプが解消され、位置登録データが利用可能になっている)。これまでに考察したように、リアルタイムのロボット実行中に、適応動作プログラムにおいて動作区分を徐々に処理する能力は、現在開示している技術の重要な特徴である。
新たな動作区分が利用可能である場合、ボックス706では高速補間が実施されて、動作区分に対するロボット動作を提供する。高速補間は、例えば、開始点及び終了点と、中間の補間点がある場合には少数の補間点を使用して、全ての関節動作の滑らかさの最適化計算を実施することなく、全体の動作区分を計算してもよい。ボックス708では、ボックス706において計算された動作区分の掃引容積が生成される。ボックス710では、ボックス708からの掃引容積は、作業空間管理装置に送信され、図6に示すようにボックス610で受信される。
ボックス710において掃引容積が送信された後、あるいは決定ひし形704にて利用可能な新たな動作区分がない場合、決定ひし形712に到達する。決定ひし形712では、いずれかの動作区分が完了したか否かが判定される。完了した場合、ボックス714では、上位の計画装置は、重複領域プール内の任意/全部の重複領域から、完了した動作区分の掃引容積を除去する必要があると指示するメッセージを作業空間管理装置に送信する。掃引容積の除去によって影響を受ける(変更されるか削除される)任意の重複領域を、再発行することになる。上位の計画装置のプロセスは、任意の掃引容積除去通知が送信された後、終端716にて終了する。
図8は、本開示の一実施形態における図5に示すようなマルチロボットシステム内のそれぞれのロボットに対して、下位の補間器モジュールが使用する方法のフローチャート図800である。ボックス802では、次の移動補間点を計算する。当技術分野で知られているように、補間点は、動作区分に沿った複数の場所にてロボットの動作システムによって計算する。各補間点は、制御装置からロボットに送信される関節動作コマンドによって定義されるロボットの次の動作を規定する。ボックス804では、ロボット制御装置の下位の補間器は、作業空間管理装置によって発行された重複領域を受信する。このような領域は、図6に示されており、これまでに考察した領域発行メッセージ662である。
決定ひし形806では、(下位の補間器によって補間された)現在の動作区分が作業空間管理装置によって発行された重複領域に関与しているか否かが判定される。関与していない場合、下位の補間器は、ボックス808において計算された補間点に移動するようにロボットに指示する。現在の動作区分が重複領域に関与している場合、決定ひし形810では、任意の他のロボットが現在重複領域にあるか否かが判定される。この情報は、作業空間管理装置からの領域発行メッセージの領域内ロボットリストから入手可能である。他のロボットが重複領域に現在は存在していない場合、下位の補間器はボックス808にてロボットに移動するように指示する。
現在において任意の他のロボットが重複領域に存在する場合、決定ひし形812では、次の移動(計算された補間点)によってロボットが重複領域に進入するか否かが判定される。進入する場合に、デッドロックの状態が発生することを防ぐために、ボックス814にて下位の補間器がロボットに位置を保持するように指示する。次の移動(計算された補間点)によりロボットが重複領域に進入しない場合、下位の補間器はボックス808にてロボットに移動するように指示する。これまでに考察した要素806~814はいずれも、ロボット動作プログラム内のインターロックとして実装することができデッドロックを回避するために、必要に応じてロボットが位置を保持するようにする、る。
ボックス808にて移動が実施されると、プロセスは進行し、重複領域に進入したか、退出したかを判定する。決定ひし形816では、完了したばかりの移動によってロボットが重複領域に進入した場合、ボックス818では、下位の補間器が「領域に進入した」というメッセージを作業空間管理装置に発行する。これは図6に示したものであり、ボックス650において下位の補間器からの進入/退出領域メッセージ642が作業空間管理装置によって受信され、作業空間管理装置は、その情報を使用して、関連する重複領域に対して領域内ロボットリストを更新した。決定ひし形820では、完了したばかりの移動によってロボットが重複領域から退出した場合、ボックス822では、下位の補間器が「領域から退出した」というメッセージを作業空間管理装置に発行し、そこでもメッセージは図6に示すように処理される。
上記の考察を要約するために、図5は、システム内の作業空間管理装置とロボットとの上位の相互作用を示している。図6は、ロボット制御装置からの入力とロボット制御装置への出力を含む作業空間管理装置の詳細を示している。図7及び図8は、作業空間管理装置からの入力及び作業空間管理装置への出力を含むロボット制御装置の上位の計画装置モジュール及び下位の補間器モジュールがそれぞれ使用する方法を示す。
前述及び以下の考察を通じて、下位の補間器によって評価される「次の移動」は、必ずしも単一のステップ又は補間点ではなく、次に現れるロボットの動作の任意の増分(例えば、関節動作の次の3つの補間点)であってもよい。
図9Aから図9Gは、本開示の実施形態における3台のロボットのシステムの重複領域及び事象の時系列の図である。図9A~図9Gは、マルチロボットシステムにて重複領域が時間の経過とともにどのように変化し(即ち、出現し、形状変化し、消失し)、それに応じて管理されるかを明確に示す。図9A~図9Gは、視覚的な明瞭さを維持するために2次元で示される。しかし、図4に示すように、掃引容積と重複領域は実際には本質的に3次元であることを理解されたい。
図9Aでは、ロボットR1が「Seg1-1」とラベル付けされた掃引容積902を発行し、ロボットR2が「Seg2-1」とラベル付けされた掃引容積904を発行し、ロボットR3は「Seg3-1」とラベル付けされた掃引容積906を発行する。掃引容積Seg1-1、Seg2-1及びSeg3-1は、図9Aの上部/左部にて簡略化された幾何学的形態で示され、図9Aの下部/右部にて(S1-1などの簡略化された表記法を使用して)ブロック図形式で示される。ここで、これらの掃引容積は、それぞれのロボットによって作業空間管理装置(WSMGR)に発行され、作業空間管理装置は、最新の掃引容積データを使用して、重複領域プール920内の重複領域を更新する。重複領域「領域1」は、参照番号930によって幾何学的に示すように、掃引容積Seg1-1とSeg2-1の共通部分によって形成される。関連するロボット及び関与する動作区分を含む領域1に関するデータは、重複領域プール920に示されている。領域内のロボットリストは図9A~図9Gには示されていないが、このデータは、重複領域プール920内の各領域に関連しているために容易に理解される。
図9Bでは、ロボットR1は、幾何学的描写及びブロック図に示すように、「Seg1-2」とラベル付けされた新たな掃引容積908を発行する。ロボットR1からのSeg1-2の追加により、ロボットR1とR2の動作の間の重複領域が大きくなる。このため、作業空間管理装置によって再計算された重複領域1(930)は、図示のようにサイズが大きくなっている。領域1が既に存在して変更されているために、新たな重複領域は作成されないことに留意されたい。この事象(R1が新たな掃引容積Seg1-2を発行する)に基づいて、作業空間管理装置は、重複領域プール920に示すように、領域の幾何学定義が変更され、関与する動作区分リストが変更されたために、重複領域1を再発行する。さらに、Seg1-1とSeg1-2の重複は、この2つの掃引容積が両方ともロボットR1からのものであるため、重複領域を作成しないことに留意されたい。
図9Cでは、ロボットR3は、幾何学的描写及びブロック図に示すように、「Seg3-2」とラベル付けされた掃引容積910を発行する。ロボットR3からのSeg3-2の追加により、ロボットR1とR3の動作の間に新たな重複領域「領域2」が作成される。領域2は、幾何学的描写(932)と重複領域プール920のブロック図に示される。既存の領域1は、領域2の作成による影響を受けない。この事象(R3が掃引容積Seg3-2を発行する)に基づいて、作業空間管理装置は、領域2を、その幾何学的定義、関連するロボットのリスト、関与する動作区分と共に発行するであろうが、重複領域1については、この領域に関連するものが変更されないため、再発行しないであろう。
図9Dでは、ロボットR2は、幾何学的描写及びブロック図に示すように、「Seg2-2」とラベル付けされた掃引容積912を発行する。図示のように、ロボットR2からのSeg2-2を追加することにより、領域2(932)の幾何学的形状が大幅に異なるものになる。ここで、領域2には、この他に幾何学的描写及び重複領域プール920のブロック図に示すように、関連するロボット及び関与する動作区分の改訂されたリストが含まれる。既存の領域1は、領域2への変更の影響を受けない。この事象(R2が掃引容積Seg2-2を発行する)に基づいて、作業空間管理装置は、修正された幾何学定義、関連するロボットの修正されたリスト、及び更新された関与する動作区分と共に、領域2を再発行するであろう。また、領域1については、この領域に関連する変更がないため、再発行されないであろう。
図9Eでは、ロボットR1は、幾何学的描写及びブロック図に示されるように、掃引容積「Seg1-1」(902)の完了を発行する。図示のように、ロボットR1によるSeg1-1の完了により、領域1(930)の幾何学的形状が大幅に異なるものになる。領域1は、幾何学的描写及び重複領域プール920のブロック図に示されるように、関与する動作区分の改訂リストが含まれる。既存の領域2は、領域1への変更の影響を受けない。この事象(R1が掃引容積Seg1-1の終了を発行する)に基づいて、作業空間管理装置は、その修正された幾何学定義と、関与する動作区分の修正されたリストと共に、領域1を再発行するであろう。領域2については、この領域に関連するものは何も変更されていないため、再発行されないであろう。
図9Fでは、ロボットR2は、幾何学的描写及びブロック図に示すように、掃引容積Seg2-1(904)の完了を発行し、ロボットR3は、掃引容積Seg3-1(906)の完了を発行する。ロボットR2によるSeg2-1の完了により、幾何学的描写及び重複領域プール920のブロック図に示すように、領域1(930)が削除される。既存の領域2は、掃引容積Seg2-1の完了又は掃引容積Seg3-1の完了によって影響を受けない。この事項(掃引容積Seg2-1及びSeg3-1の終了)に基づいて、作業空間管理装置は、領域1の削除を発行するであろう。領域2については、この領域に関連するものは何も変更されていないため、再発行されないであろう。
図9Gでは、それぞれのロボットR1/R2/R3が、図9F(Seg1-2、Seg2-2及びSeg3-2)において残っているそれぞれの掃引容積の終了を発行し、それぞれのロボットR1/R2/R3が、新たな掃引容積(Seg1-3、Seg2-3及びSeg3-3)を発行する。幾何学的描写及びブロック図に示すように、領域2は、その関与する全掃引容積が完了すると消失し、新たに発行された掃引容積間に重複がないため、新たな重複領域が作成されない。このため、作業空間管理装置は領域2の削除を発行するであろう。
図9A~図9Fに示されるプロセスは、ロボットの動作プログラムが完了するまで、ロボットによる新たな掃引容積の発行と、作業空間管理装置によって処理される重複領域の出現、消失、及び変更を継続するであろう。作業空間管理装置は、所与の時間ステップでの複数のロボットからの新たな掃引容積の発行、任意の時間ステップにて1つのロボットからの複数の掃引容積の発行などを任意の組み合わせで処理することができる。この全ステップの間、ロボットは、重複領域情報を使用して、占有される重複領域に進入することを回避し、それによって、デッドロックの状態の発生を防止する。
作業空間管理装置と、ロボット制御装置からの入力及びロボット制御装置への出力とを含む図5~図8のフローチャート及びブロック図に示され、図9A~図9Fの重複領域の時系列に描かれた上記で開示したオンラインインターロック挿入技術では、適応動作事項が原因で事前に解析することができないロボット動作プログラムのデッドロックの状態を良好に回避することが実証された。この技術は、必要に応じてロボットが位置を保持し、占有された重複領域に進入しないようにすることに効果的である。この技術は、計算によるロボットの動作の速度低下を引き起こすことなく、リアルタイムで計算することができて効率的である。
しかし、特定の状態においては、1台のロボットが新たな動作区分の掃引容積を発行し、別のロボットが、更新された重複領域の空間の一部を既に占有している場合に、重複領域が変更されるため、上記で開示した技術を使用すると、デッドロックの状態が未だ発生する可能性がある。この状況とその解決策については、以下で考察する。
図10A/10B/10Cは、いずれのロボットも占有された重複領域に移動していないにもかかわらず、デッドロックの状態が発生する2台のロボットのシステムの漸進的な図である。ロボット1000及びロボット1010は、図2に関して、これまでに考察したのと同じ方法で、基部、ロボットアーム及び工具又はエンドエフェクタを有する単純なロボットとして上面(平面)図にて示されている。ロボット1000は、経路1002に沿って(直線的に右から左へ)移動する工具を有することに対し、ロボット1010は、経路1012に沿って(ブーメラン形状で左から右へ)移動する工具を有する。ロボット1000及び1010はそれぞれ、次に現れる動作区分の掃引容積を発行しており、作業空間管理装置は、図示のように重複領域1020を計算している。
図10Aでは、ロボット1000/1010のいずれも未だ移動しておらず、ロボット1000及び1010の両方が重複領域1020の外に留まっている。図10Bでは、ロボット1000及び1010の両方がそれぞれの経路に沿って移動している。ロボット1010は、現在、重複領域1020の内側にある。ロボット1000は重複領域1020の外に留まり、次の移動がロボット1000を占有された重複領域に進入させることから、経路に沿ってさらに移動することはできない。
図10Cでは、ロボット1000/1010のいずれも、図10Bからさらに移動していない。しかし、ロボット1010は、重複領域1020Aとして示す新たな位置に重複領域1020を移動させた新たな動作区分の掃引容積を発行した。ロボット1000は占有された重複領域に移動しなかったが、ここではロボット1010と共に重複領域1020A内にいることがわかる。ロボット1000/1010のどちらも、衝突を引き起こさずにそれぞれの経路に沿ってさらに移動することができないため、ここではデッドロックの状態が存在する。
図11は、本開示の一実施形態における図10Aから図10Cに示すようなマルチロボットシステムの各ロボットの制御装置の下位の補間器モジュールによって使用される方法のフローチャート図1100である。図11の下位の補間方法は、図11にて追加された要素1110~1116(影付き)を除いて、これまでに考察した図8の下位の補間方法と同じである。図8の全部の要素ステップは、それぞれの元の番号を保持すため、ここではこれ以上考察することはしない。
決定ひし形810の後に、新たな決定ひし形1110が追加される。別のロボットが重複領域に存在する(決定ひし形810における「はい」)場合に、決定ひし形1110では、ロボット自体(下位の補間器方法が実施されるロボット)も重複領域にあるか否かを判定する。この状況は、図10Cに示すように、他のロボットが新たな動作区分の掃引容積を発行したために重複領域幾何学が変更された場合に、発生することがあり得る。
決定ひし形1110においてロボットが重複領域に存在する場合、ボックス1112では、前の掃引容積によって定義された重複領域が検査される。決定ひし形1114では、ロボットは、前の掃引容積からの重複領域に存在していたか否かを判定する。重複領域にない場合、ボックス1116において、ロボットは「再生」されるか、その動作経路に沿って1ステップ後方に移動する。この行動は、ロボットが前の掃引容積から重複領域にない場合には、更新された重複領域の発行が領域の二重占有を引き起こしたに違いないことを意味するために実施される。図10A~図10Cの例では、ボックス1116における再生により、ロボット1000は、図10Aに示される位置に戻り、ロボット1010は、次に動作経路の終端まで移動することができ、その後に、ロボット1000はその動作経路全体に沿って移動することがあり得る。
決定ひし形1114において、ロボットが前の掃引容積からの重複領域にあったと判定した場合、ボックス814では、ロボットは再生されずにその位置を保持する。この状況では、重複領域に関与する(同じ論理を使用する)他のロボットは自身が再生可能であることを認識する場合があり、これにより前述の考察したデッドロック状況が解消されるであろう。
図10A~10Cに示すデッドロック状況は、ロボット1000が脆弱な位置にすでに移動した後に、ロボット1010が新たな動作区分の掃引容積を発行したために生じた。これまでに考察したように、動作区分のこの種の遅延発行は、適応特徴(例えば、ジャンプ、位置登録)を有するロボットの動作プログラムにて発生することがある。図11の方法は、動作区分のこの種の遅延発行のために発生するデッドロック状況を自動的に解消するための技術を提供する。ここで、自動デッドロック解消により、1台のロボットがわずかに後退するだけでロボットの動作が維持される。自動デッドロック解消により、マルチロボットシステムの完全な停止と、これまでに必要であった操作者介入の必要性とが回避される。
一部のマルチロボットシステムには、吹き付け塗装又はレーザ/アーク溶接などの連続的なプロセス操作を実施する1つ又は複数のロボットが含まれる。このような継続的なプロセス操作は、操作の品質が低下することになるため、いったん開始すると中断することができない。この状況には、上記のデッドロック防止方法及びシステムにさらに論理を追加することによって適応することができる。特に、デッドロックの状態を回避する必要がある場合に、他のロボットが位置を保持する役割を果たすように、開始された連続的なプロセス操作を優先することができる。これを図12~図14に示す。
図12は、本開示の一実施形態におけるマルチロボットシステムの連続的なプロセス操作を実施する各ロボットの制御装置の動作計画装置によって使用される方法のフローチャート図である。図12の方法の目的は、プロセス操作全体の掃引容積を計算することである。ボックス1202では、開始事項及び終了事項を見つけるために、プロセス動作が分析される。例えば、典型的な動作プログラムには、プロセスを起動するコマンド「Weld On」又は「Paint On」と、プロセスを停止する類似のコマンドが含まれるかもしれない。動作プログラムの開始事項と終了事項とが識別されると、ボックス1204では、典型的には複数の動作区分を含むプロセス操作の動作全体の掃引容積が計算される。ジャンプなどの適応動作事項は、典型的には、プロセス操作内には現れないため、計算された掃引容積は正確である必要がある。ボックス1206では、プロセス操作の計算された掃引容積は、ロボット制御装置のメモリに保存される。
図13は、本開示の一実施形態におけるマルチロボットシステムにて連続的なプロセス操作を実施する各ロボットの制御装置の上位の計画装置によって使用される方法のフローチャート図である。ロボットの動作プログラムの実行中にプロセス開始指令を受けると、ボックス1302では、(図12にて計算され保存された)プロセス掃引容積がロボットの上位の計画装置によって発行される。決定ひし形1304では、任意の他のロボットがプロセス掃引容積に関与する任意の重複領域内に存在するか否かが判定される。重複領域に存在する場合に、ロボットは、他のロボットが重複領域を空けるまで、決定ひし形1304にてループし続ける。ボックス1306では、重複領域が空になると、ロボットはプロセスを開始する(例えば、吹き付け塗装を開始する)。ボックス1308では、ロボットは、「領域に進入した」というメッセージを作業空間管理装置に発行する。プロセス掃引容積が発行され、関連する重複領域にロボットが現在進入している状態では、システム内の他のロボットが重複領域から離れたままになり、ロボットはデッドロックのリスクなしにプロセス操作を完了することができる。
プロセス終了指令を受けると、ボックス1310にて、ロボットは作業空間管理装置にプロセス掃引容積が完了し、除去することができることを通知する。ボックス1312では、ロボットはプロセスを終了する(例えば、吹き付け塗装を停止する)。ボックス1314では、ロボットは「領域から退出した」というメッセージを作業空間管理装置に発行する。プロセス掃引容積が除去され、関連する重複領域からロボットが現在退出している状態では、システムの全ロボットは、前述のデッドロック回避方法(オンラインの掃引容積検査と再生)を使用して再開される。
図14は、本開示の一実施形態におけるマルチロボットシステムにおいて連続的なプロセス操作を実施する各ロボットの制御装置内の下位の補間器によって使用される方法のフローチャート図である。ロボットの次の移動のために補間点が計算されると、決定ひし形1402において、現在の動作区分にプロセス操作があるか否かが判定される。プロセス操作がある場合、決定ひし形1404にて、下位の補間器は、(同じロボット制御装置の)上位の計画装置を検査して、プロセスの動作全体の掃引容積が発行されて、プロセスを開始してもよいか否かを判定する。即ち、図13のボックス1306に到達した場合、決定ひし形1404において、上位の計画装置は下位の補間器にプロセスを開始してもよいことを伝え、ボックス1406において下位の補間器はロボットに次の補間点に移動するように伝える。プロセス操作が開始されると、ロボットは、プロセスが終了するまで、次の各補間点に移動するための許可を自身に提供し続けることになる。
決定ひし形1404において、上位の計画装置が下位の補間器に、プロセスを開始してはいけない(例えば、プロセス掃引容積が未だ発行されていないか、結果として生じる重複領域が別のロボットによって占有されている)ことを伝える場合に、下位の補間器は、ボックス1406にて位置を保持するようにロボットに伝える。ロボットは、上位の計画装置から、プロセス掃引容積に移動する許可を受け取るまで、位置を保持し続けることになる。
決定ひし形1402において、現在の動作区分に連続的なプロセス操作がないと判定された場合、ボックス1410において、オンライン掃引容積の発行、重複領域の検査及び再生の方法(上記で考察した図11)が使用される。
図12~図14の方法に示す連続的なプロセス操作に対応するために必要な変更は最小限であり、重複領域プールのデータモデルを変更する必要がないことは注目に値する。他のロボットの認知のために、進行中の処理の通知を発行する必要はない。プロセス全体の掃引容積を発行し、前述の方法で領域の進入/退出メッセージを発行すればよい。
上記で開示した全ての方法及びシステムでは、説明したロボット制御装置の上位の計画装置及び下位の補間器の機能は、一実施形態例として理解されるべきものである。異なるロボット制御装置の設計では、このように上位の計画装置モジュールと下位の補間器モジュールとの間で計算、特徴及び機能が分担されない場合がある。ロボット制御装置が動作区分の掃引容積の発行と移動前の検査を実施して、占有された重複領域への進入を回避する限り、開示した技術は、デッドロック状況を効果的に防止したり、及び/又は解消したりするであろう。
これまでの考察を通じて、さまざまなコンピュータと制御装置を説明し、暗示している。このようなコンピュータ及び制御装置のソフトウェアアプリケーション及びモジュールは、プロセッサ及びメモリモジュールを有する1つ又は複数の計算装置で実行されることを理解されたい。特に、これは、図1に関して上記で考察したように、ロボット制御装置102及び112と任意に付加される作業セル制御装置130のそれぞれは、プロセッサを含む。具体的には、ロボット制御装置及び作業セル制御装置内のプロセッサは、これまでの開示全体にわたって説明した方法で、動作区分の掃引容積の発行と、重複領域の計算及び発行と、占有された重複領域への進入を回避するための事前移動の検査とを実施するように構成される。さらに、用途に最も適した適応であるように、作業セル内のロボットごとに個別の制御装置を設けても、1つの制御装置を使用して複数のロボットの動作を制御してもよいことを理解されたい。いずれの場合においても、これまでに説明した上位の計画装置及び下位の補間器の機能を含む、それぞれのロボットごとに動作を計算する動作計画装置モジュールがある。
上記で概説したように、ロボット動作計画におけるデッドロック回避のための開示技術は、デッドロック防止の堅牢性及び信頼性を改善する。開示技術では、重複領域を回避するために手動で定義されたインターロックの事前の取り組みと固有の不正確さとを回避し、自動の重複領域回避インターロックを、実際のオンラインのロボット操作中にのみ計算されるジャンプ及び位置登録などの適応機能を含む動作プログラムにも追加することを可能にする。
ロボット動作計画におけるデッドロック回避の多くの例示的な態様及び実施形態について上記で考察したが、当業者であれば、その修正、置換、追加及び部分的な組み合わせを認識するであろう。このため、以下の添付の特許請求の範囲及び以下に導入される特許請求の範囲は、その真の精神及び範囲内にあるようなあらゆる修正、置換、追加及び部分的な組み合わせを含むと解釈されることを意図するものである。
Claims (24)
- 共通の作業空間において動作する2台以上のロボットを含むマルチロボットシステムにおいてデッドロックを防止するためのオンラインの方法であって、各ロボットはプロセッサ及びメモリを含む制御装置によって制御されており、前記方法は、
それぞれの前記ロボットの前記制御装置の動作計画装置モジュールによって、1つ又は複数の次に現れる動作区分の掃引容積を計算するステップと、
前記掃引容積を作業空間管理装置モジュールに発行するステップと、
前記作業空間管理装置モジュールによって、任意の2つ以上の前記ロボットからの任意の2つ以上の前記掃引容積の間の重複の空間容積として、重複領域を計算するステップと、
それぞれの前記重複領域と状況データとを、それぞれの前記重複領域に関与するそれぞれの前記ロボットの前記制御装置に発行するステップと、
ロボットの移動の次の増分を計算した後に、それぞれの前記ロボットの前記制御装置の前記動作計画装置モジュールによって、前記重複領域と前記状況データとを検査するステップと、
前記次の増分によって前記ロボットが占有された重複領域に進入しない場合に、ロボット移動の次のステップを実行するステップと、
前記次の増分によって前記ロボットが占有された重複領域に進入する場合に、前記ロボットを現在の位置に保持するステップと、
重複領域に進入するか重複領域から退出する場合に、それぞれの前記ロボットの前記制御装置の前記動作計画装置モジュールによって、前記作業空間管理装置モジュールに通知するステップと、を含む、方法。 - 前記作業空間管理装置モジュールは、前記制御装置のうちの1つで作動するか、それぞれの前記ロボットの前記制御装置と通信するコンピュータにおいて作動する、請求項1に記載の方法。
- 1つ又は複数の次に現れる動作区分の掃引容積を計算するステップと、前記掃引容積を発行するステップとは、ロボット操作の期間中に連続的に実施される、請求項1に記載の方法。
- 1つ又は複数の次に現れる動作区分の掃引容積を計算するステップと、前記掃引容積を発行するステップとは、前記動作区分における任意の適応コマンドが解決されたと判定された後にのみ実施され、前記適応コマンドは、ジャンプ及び位置登録オフセットのうちの1つ又は複数を含む、請求項1に記載の方法。
- 前記掃引容積の前記動作区分のうちの1つが完了したときに、それぞれの前記ロボットの前記制御装置の前記動作計画装置モジュールによって、前記作業空間管理装置モジュールに通知するステップをさらに含む、請求項1に記載の方法。
- それぞれの前記重複領域の前記状況データは、重複の前記空間容積と、前記重複領域に含まれるそれぞれの前記掃引容積の動作区分番号と、前記重複領域に関与する前記ロボットのリストと、現在に前記重複領域に存在する任意のロボットの識別情報と、を含む、請求項1に記載の方法。
- それぞれの前記重複領域及び状況データを発行するステップは、各重複領域が最初に作成されたときにそれぞれの重複領域を発行するステップと、前記状況データの任意の要素が変化したときに各重複領域を再発行するステップと、各重複領域が存在しなくなったときに各重複領域の取り消しを発行するステップと、を含む、請求項1に記載の方法。
- それぞれの前記重複領域についての前記重複の空間容積は、前記掃引容積を表すボクセルを使用して計算される、請求項1に記載の方法。
- 前記次の増分によって前記ロボットが占有された重複領域に進入する場合に、前記ロボットが既に占有された前記重複領域に存在しているか否かを判定し、存在している場合は、前の動作区分の掃引容積について、前記ロボットが占有された前記重複領域に存在していたか否かを判定するステップをさらに含む、請求項1に記載の方法。
- 前記ロボットが前の前記動作区分の掃引容積について占有された前記重複領域に存在していた場合に、前記ロボットを現在の位置に保持し、前記ロボットが前記前の動作区分の掃引容積について占有された前記重複領域に存在していなかった場合に、前の増分に戻るステップをさらに含む、請求項9に記載の方法。
- 前記制御装置は、吹き付け塗装、レーザ溶接又はアーク溶接、あるいは材料のビードの分配を含む連続的なプロセス操作を実施する前記ロボットのいずれかに移動の優先権を提供するように構成される、請求項1に記載の方法。
- 連続的な前記プロセス操作を実施する前記ロボットの前記制御装置の前記動作計画装置モジュールは、連続的な前記プロセス操作の全体の掃引容積を計算して発行し、次に、連続的な前記プロセス操作の全体の前記掃引容積に関与する重複領域が占有されていない場合に連続的な前記プロセス操作を開始する、請求項11に記載の方法。
- 共通の作業空間において動作する2台以上のロボットを含むマルチロボットシステムにおいてデッドロックを防止するためのオンラインの方法であって、各ロボットはプロセッサ及びメモリを含む制御装置によって制御されており、前記方法は、
それぞれの前記ロボットの前記制御装置の動作計画装置モジュールによって、1つ又は複数の次に現れる動作区分の掃引容積を計算するステップであって、前記掃引容積を計算するステップは、前記動作区分の任意の適応コマンドが解決されたと判定された後にのみ、ロボットの動作中に連続的に実施され、前記適応コマンドは、ジャンプ及び位置登録オフセットのうちの1つ又は複数を含む、ステップと、
前記掃引容積を作業空間管理装置モジュールに発行するステップと、
前記作業空間管理装置モジュールによって、前記ロボットのうちの任意の2台以上からの前記掃引容積のうちの任意の2つ以上の間の重複の空間容積として、重複領域を計算するステップと、
それぞれの前記重複領域と状況データとを、それぞれの前記重複領域に関与するそれぞれの前記ロボットの前記制御装置に発行するステップであって、それぞれの前記重複領域の前記状況データは、前記重複の空間容積と、前記重複領域に含まれるそれぞれの前記掃引容積の動作区分番号と、前記重複領域に関与する前記ロボットのリストと、前記重複領域に現在に存在する任意のロボットの識別情報と、を含む、ステップと、
ロボットの移動の次のステップを計算した後に、それぞれの前記ロボットの前記制御装置の前記動作計画装置モジュールによって、前記重複領域と前記状況データとを検査するステップと、
次のステップによって前記ロボットが占有された重複領域に進入しない場合に、ロボットの移動の次のステップを実行するステップと、
次のステップによって前記ロボットが占有された重複領域に進入する場合に、ロボットを現在の位置に保持するステップと、
重複領域に進入するか重複領域から退出するときに、それぞれの前記ロボットの前記制御装置の前記動作計画装置モジュールによって、前記作業空間管理装置モジュールに通知するステップと、
前記掃引容積の動作区分の1つが完了したときに、それぞれの前記ロボットの前記制御装置の前記動作計画装置モジュールによって、前記作業空間管理装置モジュールに通知するステップと、を含む、方法。 - オンラインのデッドロックを防止するマルチロボットシステムであって、前記システムは、
共通の作業空間にて動作する2台以上のロボットと、
2台以上の前記ロボットを制御する1つ又は複数の制御装置であって、各制御装置はプロセッサ及びメモリを備える制御装置と、
それぞれの前記ロボットの前記制御装置で作動する動作計画装置ソフトウェアモジュールと、
それぞれの前記ロボットの前記制御装置の前記動作計画装置ソフトウェアモジュールと通信する作業空間管理装置ソフトウェアモジュールと、を備えるシステムであって、
それぞれの前記ロボットの前記制御装置の前記動作計画装置ソフトウェアモジュールは、
1つ又は複数の次に現れる動作区分の掃引容積を計算し、前記掃引容積を作業空間管理装置モジュールに発行するように構成され、
前記作業空間管理装置ソフトウェアモジュールは、
任意の2台以上の前記ロボットから任意の2つ以上の前記掃引容積の間の重複の空間容積として重複領域を計算し、
それぞれの前記重複領域及び状況データを、それぞれの前記重複領域に関与するそれぞれの前記ロボットの前記制御装置に発行するように構成され、
それぞれの前記ロボットの前記制御装置の前記動作計画装置ソフトウェアモジュールは、
ロボット移動の次の増分を計算した後に、前記重複領域と前記状況データとを検査し、
次の増分によって前記ロボットが占有された重複領域に進入しない場合に、前記ロボット移動の次の増分を実行し、
次の増分によって前記ロボットが占有された重複領域に進入する場合に、前記ロボットを現在の位置に保持し、
前記重複領域に出入りしたときに、前記作業空間管理装置ソフトウェアモジュールに通知するようにさらに構成される、システム。 - 前記作業空間管理装置ソフトウェアモジュールは、前記制御装置のうちの1つで作動するか、それぞれの前記制御装置と通信するコンピュータにおいて作動する、請求項14に記載のシステム。
- 前記動作計画装置ソフトウェアモジュールは、ロボット動作中に連続的に1つ又は複数の次に現れる動作区分の前記掃引容積を計算して発行する、請求項14に記載のシステム。
- 前記動作計画装置ソフトウェアモジュールは、1つ又は複数の次に現れる動作区分の掃引容積を計算し、前記動作区分の任意の適応コマンドが解決されたと判定された後にのみ、前記掃引容積を発行し、前記適応コマンドは、ジャンプ及び位置登録オフセットのうちの1つ又は複数を含む、請求項14に記載のシステム。
- 前記動作計画装置ソフトウェアモジュールは、前記掃引容積の動作区分のうちの1つが完了したときに、前記作業空間管理装置ソフトウェアモジュールに通知するようにさらに構成される、請求項14に記載のシステム。
- それぞれの前記重複領域の前記状況データは、重複の前記空間容積と、前記重複領域に含まれるそれぞれの前記掃引容積の動作区分番号と、前記重複領域に関与する前記ロボットのリストと、前記重複領域に現在に存在する任意のロボットの識別情報と、を含む、請求項14に記載のシステム。
- 前記作業空間管理装置ソフトウェアモジュールは、それぞれの前記重複領域及び前記状況データを、各重複領域が最初に作成されたときに発行し、前記状況データの任意の要素が変化したときに各重複領域及び前記状況データを再発行し、各重複領域が存在しなくなったときに各重複領域の取り消しを発行する、請求項14に記載のシステム。
- 前記動作計画装置ソフトウェアモジュールは、次の増分によって前記ロボットが占有された重複領域に進入する場合に、ロボットが占有された前記重複領域に既に存在しているか否かを判定し、存在している場合には、前記ロボットが前の動作区分の掃引容積について占有された前記重複領域に存在していたか否かを判定するようにさらに構成される、請求項14に記載のシステム。
- 前記動作計画装置ソフトウェアモジュールは、前記ロボットが前の動作区分の掃引容積について占有された前記重複領域に存在していた場合に、前記ロボットを現在の位置に保持し、前記ロボットが前の動作区分の掃引容積について占有された前記重複領域に存在していなかった場合に、前記ロボットを前の増分に後退させるようにさらに構成される、請求項21に記載のシステム。
- 連続的なプロセス操作を開始する準備ができているロボットの前記制御装置の前記動作計画装置ソフトウェアモジュールは、連続的な前記プロセス操作の全ての動作区分に対して掃引容積を計算して発行し、次に、全体の連続的な前記プロセス操作の前記掃引容積に関与する重複領域が占有されていない場合に、連続的な前記プロセス操作を開始する、請求項14に記載のシステム。
- ロボットの移動の次の増分を計算した後の前記重複領域と前記状況データとを検査するステップと、前記重複領域を検査するステップに続いて実施される行動は、それぞれの前記ロボットの前記制御装置の前記動作計画装置ソフトウェアモジュールによって実行される動作プログラムのインターロックとして実施される、請求項14に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/644,123 US20230182299A1 (en) | 2021-12-14 | 2021-12-14 | Online auto-interlock strategy |
US17/644,123 | 2021-12-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023088293A true JP2023088293A (ja) | 2023-06-26 |
Family
ID=86498914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022196775A Pending JP2023088293A (ja) | 2021-12-14 | 2022-12-09 | オンライン自動インターロック戦略 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230182299A1 (ja) |
JP (1) | JP2023088293A (ja) |
CN (1) | CN116263716A (ja) |
DE (1) | DE102022131537A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117325185B (zh) * | 2023-11-27 | 2024-04-09 | 成都越凡创新科技有限公司 | 移动机器人解死锁的方法及调度设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004027944B4 (de) * | 2004-06-08 | 2012-02-16 | Kuka Laboratories Gmbh | Verfahren zum Schützen eines Roboters gegen Kollisionen |
JP4159577B2 (ja) * | 2005-12-13 | 2008-10-01 | ファナック株式会社 | 複数のロボット間のインターロック自動設定装置及び自動設定方法 |
US9144904B2 (en) * | 2008-05-21 | 2015-09-29 | Fanuc Robotics America Corporation | Method and system for automatically preventing deadlock in multi-robot systems |
US9707681B2 (en) * | 2015-07-27 | 2017-07-18 | Siemens Industry Software Ltd. | Anti-collision management of overlapping robotic movements |
JP6576255B2 (ja) * | 2016-01-25 | 2019-09-18 | キヤノン株式会社 | ロボット軌道生成方法、ロボット軌道生成装置、および製造方法 |
CN106979785B (zh) * | 2017-03-24 | 2020-10-16 | 北京大学深圳研究生院 | 一种面向多机器人系统的完全遍历路径规划方法 |
US11745345B2 (en) * | 2019-08-30 | 2023-09-05 | Intrinsic Innovation Llc | Planning by work volumes to avoid conflicts |
US11890758B2 (en) * | 2019-08-30 | 2024-02-06 | Intrinsic Innovation Llc | Robot planning from process definition graph |
US20210197378A1 (en) * | 2019-12-27 | 2021-07-01 | X Development Llc | Offline robot planning with online adaptation |
-
2021
- 2021-12-14 US US17/644,123 patent/US20230182299A1/en active Pending
-
2022
- 2022-11-29 DE DE102022131537.1A patent/DE102022131537A1/de active Pending
- 2022-12-09 JP JP2022196775A patent/JP2023088293A/ja active Pending
- 2022-12-12 CN CN202211598412.0A patent/CN116263716A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230182299A1 (en) | 2023-06-15 |
DE102022131537A1 (de) | 2023-06-15 |
CN116263716A (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3794314B1 (en) | Robot coordination in a shared workspace | |
US9144904B2 (en) | Method and system for automatically preventing deadlock in multi-robot systems | |
JP5981215B2 (ja) | マルチロボットシステムのデッドロックを自動的に防止する方法及びシステム | |
US10919153B2 (en) | Teaching method for teaching operations to a plurality of robots and teaching system used therefor | |
US10754337B2 (en) | Systems and methods for planning paths to guide robots | |
JP7419001B2 (ja) | マニピュレータの衝突回避のための動作計画方法および装置 | |
US8315738B2 (en) | Multi-arm robot system interference check via three dimensional automatic zones | |
US20150190926A1 (en) | Method and system for off-line programming of multiple interacting robots | |
CN115605328A (zh) | 一种用于工业机器人的碰撞避免运动规划方法 | |
JP2018075709A (ja) | システム並びにシステムを製造及び制御するための方法 | |
US20100305753A1 (en) | Method And Device For Controlling A Manipulator | |
US20100114338A1 (en) | Multi-goal path planning of welding robots with automatic sequencing | |
JP2004001217A (ja) | ロボットと他の物体との衝突を回避する方法と装置 | |
JP6068423B2 (ja) | 加工動作をロボットに教示するロボットプログラミング装置 | |
WO2008031700A1 (en) | A method and a device for avoiding collisions between an industrial robot and an object | |
WO2008031664A1 (en) | A method and a device for avoiding collisions between an industrial robot and an object | |
JP6567101B2 (ja) | 教示方法、ロボットの動作方法、プログラム、記憶媒体、教示装置 | |
JP2023088293A (ja) | オンライン自動インターロック戦略 | |
Montano et al. | Coordination of several robots based on temporal synchronization | |
Manoharan et al. | Path planning for direct energy deposition with collaborative robots: A review | |
CN115042181B (zh) | 一种中组立分段机器人的多焊接轨迹生成方法及系统 | |
CN113942014B (zh) | 轨迹生成方法及轨迹生成装置、机器人设备、存储介质 | |
US11787054B2 (en) | Robot planning | |
DiMarco et al. | Exponential and sigmoid-interpolated machining trajectories | |
WO2022139939A1 (en) | Robot planning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230511 |