JP2004243461A - Teaching system of robot - Google Patents

Teaching system of robot Download PDF

Info

Publication number
JP2004243461A
JP2004243461A JP2003035461A JP2003035461A JP2004243461A JP 2004243461 A JP2004243461 A JP 2004243461A JP 2003035461 A JP2003035461 A JP 2003035461A JP 2003035461 A JP2003035461 A JP 2003035461A JP 2004243461 A JP2004243461 A JP 2004243461A
Authority
JP
Japan
Prior art keywords
robot
task
robots
work
unit
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
Application number
JP2003035461A
Other languages
Japanese (ja)
Inventor
Shingo Ando
慎悟 安藤
Yasuyuki Inoue
康之 井上
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.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
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 Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2003035461A priority Critical patent/JP2004243461A/en
Publication of JP2004243461A publication Critical patent/JP2004243461A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a teaching system restraining an increase in work time even when the travel distance of a robot in work is long and even when most of operating areas are shared by robots. <P>SOLUTION: This teaching system of the robot which is adapted to plan an operation program to a plurality of robots includes: a task distribution planning part 111 for distributing tasks to two or more robots; a task processing sequence planning part 112 for planning a task processing sequence in each robot; a robot operation planning part 113 for planning the operation program and calculating the operation time according to a task distribution plan and the task processing sequence; a robot-to-robot collision avoiding operation planning part 115 for altering the operation program to avoid a collision between the robots and calculating the operation time; and evaluation reference calculating parts 111a, 112a for calculating an evaluation reference on the basis of the operation time of the robot operation planning part 113 and the operation time of the robot-to-robot collision avoiding operation planning part 115. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、動作領域が重なり合うように設置された複数台のロボットへの作業分担と作業順を決定し、各ロボットの動作プログラムを作成する教示システムに関するものであり、特にロボット同士が衝突を起こさず、全体の作業時間が短くなるように作業分担と作業順を決定するシステムに関する。
【0002】
【従来の技術】
自動車の生産ラインでは、複数台の産業用ロボットマニピュレータを投入して、スポット溶接などの作業を自動化している。ここでは、多数のロボットが互いの動作領域が重なり合うほど近接して配置されている。このような近接する複数のロボットの教示作業は、従来、教示者が個々のロボットの動作を1ステップづつ実際に動作させながら、複数ロボット間で干渉が生じないように各ロボットの動作軌道と、各動作軌道間の実行タイミング(インタロック)を試行錯誤的に教示していた。しかし、教示者による試行錯誤的な教示では、複数のロボットを安全かつ効率的に動作させるのが非常に難しいという問題がある。複数のロボットを効率的に動作させようとすると、その教示作業は非常に複雑になり、かつ教示および動作確認に非常に時間がかかる。特に、製品の種類が頻繁に変わる多品種少量生産では、製品の種類が変更される度に教示者が教示作業を全てやり直すことになるので、実際にロボットが稼動して生産する直接工程よりも、教示作業などの間接工程時間の比率が増大し、生産性が極端に低下してしまう。また、教示者が教示作業に直接に係わる割合が大きいので、人件費の高騰も問題となる。
近年では、教示者による直接教示に代わって、計算機を用いて複数ロボットの教示作業と動作制御を効率化する方法や装置が提案されている。
【0003】
従来例1では、繰り返し探索時の評価基準である作業時間をシミュレーションする際、複数台のロボットが同時に作業を実行すると衝突する可能性がある場合は、ロボットに優先順位を定め、優先順位の高いロボットの作業を優先して実行し、優先順位の低いロボットを衝突の可能性が解消されるまで待機させることによって衝突を回避している。図12は、作業分担と作業順の初期解の例を示している。図12において、R1〜R3はロボット名を、G1〜G14はスポット溶接の打点グループを、逆/順は打点グループをどの方向から処理するかを示している。図12に示されたR1からR3への作業分担と作業順をシミュレーションする際、ロボット間で衝突が生じる場合は、初期優先順位R1→R2→R3にしたがって、優先順位の高いロボットの打点グループを先に実行させ、その打点グループの処理が終了するまで優先順位の低いロボットの打点グループの実行を待機させている(例えば、特許文献1)。
【0004】
従来例2では、繰り返し探索時の評価基準である作業時間をシミュレーションする際、複数台のロボットが同時に作業を実行すると衝突する可能性がある場合は、現在動作中のロボットの作業進行状態を監視し、衝突の可能性が解消されるまで他のロボットを待機させることによって衝突を回避している。図13は、ロボット間衝突回避の手順を示している。図13において、1〜9は溶接線を示している。同図上段は、ロボット1が現在溶接線1の作業を処理中であり、ロボット1の現在位置から溶接線1の終了位置までロボット1が通過する領域(干渉領域)と、ロボット2がこれから処理する溶接線4の開始位置から終了位置までロボット2が通過する領域が干渉する(重なる)ことを示している。この状態ではロボット2の作業実行が待機させられる。同図下段は、ロボット1の作業進行状況にしたがってロボット1の通過領域を更新し、ロボット2の通過領域との重なりがなくなった時点で、ロボット2は作業を開始する(例えば、特許文献2)。
【0005】
従来例3では、複数台のロボットに作業分担と作業順を指定した教示データが与えられたとき、ロボット間の衝突を回避し、なおかつロボットの待ち時間を最小にして効率的にロボットを動作させる制御装置が開示されている。図14は、そのロボット制御装置の動作原理を説明している。同図において、(A)は、ロボットAとロボットBの作業点と作業点間の動作経路を示している。(B)は、(A)の作業点データをもとに干渉抽出手段によって計算されたロボットAとBの作業点間の干渉テーブルを示している。(C)は、非干渉通過順序決定手段により計算された干渉する作業点におけるロボットの優先順序テーブルを示している。図14(B)は、ロボットAとロボットBが、作業点2aと2b、3aと3b、4aと4bで同時に作業を行なうと干渉が生じることを示している。図14(C)は、ロボットBの作業2b,3b,4bに優先させてロボットAの作業2a,3a,4aを実行させることを示している。優先順位テーブルを作成する際、各ロボットの残りの作業時間と作業点での待ち時間の和を比較して、長い方を選択することにより優先順位を決定している(例えば、特許文献3)。
【0006】
従来例4では、複数の機械(溶接ロボット)に作業(溶接線)の分担が与えられたとき、それぞれの機械の作業経路を作業量の多い機械から優先的に決定する制御装置と制御方法が開示されている。図15は、その制御装置の構成図を示している。同図において、CAD/CAMシステム2は複数の機械に割当てられた作業に必要な情報を作成する。作業情報記憶部4ではCAD/CAMシステム2によって作成された作業情報を記憶する。作業量評価部6では各機械の作業量を評価する。機械選択部8では作業量の多い機械を優先的に所定個数(ここではN個とする)選択する。作業経路選択部10では機械選択部8で選択されたN個の機械それぞれについて、複数の作業経路を作成してその作業時間を評価する。作業経路選択部12では、機械選択部8で選択されたN個の機械それぞれについて、作業経路評価部10で作成した複数の経路の中から作業時間の短いものを優先的に所定個数(ここではM個とする)選択する。全作業経路評価部14では、作業経路選択部12で選択されたN×M個の作業経路それぞれについて、その作業と並行して作業する全ての機械の作業経路を複数作成して、その全てについて作業時間を評価する。全作業経路選択部16では、N×M個の作業経路の中から作業時間が最も短いものを選択し、選択された作業を担当する機械以外の全ての機械について、全作業経路評価部14で作成した複数の作業経路の中から作業時間が最も短いものを選択する。機械制御部22では、全作業経路選択部16で選択された全機械の作業経路にしたがって複数の機械を制御する。複数の溶接ロボットの作業(溶接線)経路に沿った動作が衝突する場合には、干渉状態が少なくなるようにその溶接線を複数に分割して、全作業経路評価部で処理する(例えば、特許文献4)。
【0007】
【特許文献1】
特許2984218号公報
【特許文献2】
特許2778922号公報
【特許文献3】
特開平11−347984号公報
【特許文献4】
特開2002−116816号公報
【0008】
【発明が解決しようとする課題】
従来例1および従来例2で開示された方法では、溶接線あるいは打点グループ(スポット溶接の複数の打点)全体を単位として、ロボットの作業実行を待機させることによりロボット間の衝突を回避して全体の作業時間をシミュレートし、そのシミュレーション値を評価基準として作業分担と作業順を決定している。したがって、1つの作業(溶接線あるいは打点グループ)内での移動距離が長くなると、その作業に対するロボットの通過領域が広くなり、動作時間も長くなるので、ロボットの待ち時間が増えて全体の作業時間(計算値)が長くなってしまうという問題がある。また、複数台のロボットがより近接されて配置され、動作領域のほとんどをロボット同士で共有する場合には、衝突の可能性が頻繁に起こり、同様に作業時間の増大をまねくという問題がある。
【0009】
従来例3で開示された方法では、図14で説明すると、ロボットAが作業点2aの作業を終えて干渉領域2aを通過し終えるまで、ロボットBを作業点1bで待機させている。しかしながら、実際には、ロボットBが作業点1bから2bに移動するための時間があるため、必ずしもロボットAが干渉領域2aを通過するまでロボットBを作業点1bに待機させておく必要はない。つまり、全体の作業時間を更に短縮できる余地は十分残されているが、作業点間の移動軌道については何も考慮していないため、この方法ではこれ以上対処できないという問題がある。
【0010】
従来例4で開示された方法では、ロボット同士が衝突する場合、該当する溶接線を複数に分割して、全作業経路評価部(図15の14)での演算を行っているが、優先順位の設定など衝突を回避するための直接の演算をしているわけではない。作業経路は溶接線の処理順、溶接方向、溶接開始点までの移動経路を考慮して作業経路を作成するため、溶接線を分割することによって膨大な数の組み合わせが生じる。その膨大な作業経路の組み合わせの中から衝突が生じないものを選択するという処理を行っている。そのため、演算量の爆発的な増大を招き、効率的な衝突回避ができないという問題がある。また、溶接線から溶接線への移動軌道については分割の対象にしていないため、溶接線間の移動において大きな待ち時間が生じるという問題もある。
【0011】
本発明は、上記問題に鑑みてなされたものであり、1つの作業全体や作業点だけを考慮せず、作業(点)間の移動軌道や作業内の各軌道を細かく考慮することによって、作業内のロボットの移動距離が長い場合や動作領域のほとんどをロボット間で共有する場合でも作業時間の増加を極力抑えることができ、なおかつロボット間でデッドロック状態が生じることがないロボットの教示システムを提供することを目的としている。
さらに、軌道を細かく考慮しても演算量の急激な増加を招くことなく、効率的なロボット間衝突回避機能を備えたロボットの教示システムを提供することを目的としている。
【0012】
【課題を解決するための手段】
上記課題を解決するため、請求項1記載のロボットの教示システムは、複数のロボットに対して所定の作業を実施するように前記各ロボットに対して作業分担と作業処理順の組み合わせの中から評価基準を最小あるいは最大にするものを優先的に探索して動作プログラムを生成するロボットの教示システムにおいて、前記作業を前記複数のロボットに分配するタスク分配計画部と、前記分配されたタスクの各ロボット内でのタスク処理順序を計画するタスク処理順計画部と、前記タスク分配計画と前記タスクの処理順序に基づいて各ロボットと障害物との衝突を回避し、かつ、各ロボットの動作開始位置と終了位置をロボット同士が衝突しない領域とする動作プログラムの生成及び動作時間の算出とを行うロボット動作計画部と、前記動作プログラムの中でロボット間で衝突が発生する軌道がある場合、前記軌道を複数に分割し、前記分割された軌道に対してロボット間での衝突を回避するように前記動作プログラムの変更及び動作時間の算出を行うロボット間衝突回避動作計画部と、前記ロボット動作計画部の動作時間と前記ロボット間衝突回避動作計画部の動作時間とに基づいて前記評価基準を計算する評価基準計算部とを備えることを特徴とするものである。
【0013】
請求項2記載のロボットの教示システムは、前記ロボット間衝突回避動作計画部は、複数ロボット全体の動作時間が最短となるように各ロボットの動作計画を変更する最適化処理部を備えることを特徴とするものである。
請求項3記載のロボットの教示システムは、同一ロボットの複数の前記動作プログラムを実行順序にしたがって1つの動作プログラムに併合する動作プログラム併合部を備えることを特徴とするものである。
請求項4記載のロボットの教示システムは、前記動作プログラム併合部は、動作プログラムの最終作業点から終了位置までの軌道と次工程動作プログラムの開始位置から開始作業点までの軌道を削除する軌道削除部と、前記最終作業点から前記開始作業点までの軌道を両動作プログラム間に追加する軌道追加部とを備えることを特徴とするものである。
【0014】
請求項5記載のロボットの教示システムは、前記タスク処理順計画部は、前記タスク間の先後関係を記述したタスクグラフに基づいて並列実行可能な複数のタスクを1つのタスクセットとし、前記タスクセットを直列に接続したタスクセットリストを生成する機能を備え、前記タスク分配計画部は、前記タスクセットリストの先頭の前記タスクセットから各作業を実行するロボットの組み合わせを探索する機能を備えることを特徴とするものである。
請求項6記載のロボットの教示システムは、前記タスク間の先後関係をロボット間の動作先後関係に対応付ける展開ルール情報部を備え、前記ロボット間衝突回避動作計画部は、前記タスク間の先後関係に基づいて動作プログラムを変更する先後関係考慮部を備えることを特徴とするものである。
【0015】
請求項7記載のロボットの教示システムは、前記タスク分配計画部、前記タスク処理順計画部及び前記ロボット間衝突回避動作計画部は、それぞれ独立して分散処理可能なソフトウェアオブジェクトであることを特徴とするものである。
請求項8記載のロボットの教示システムは、前記ロボット動作計画部は、各ロボット毎に独立したソフトウェアオブジェクトであることを特徴とするものである。
【0016】
【発明の実施の形態】
以下、本発明の実施の形態を図を参照して説明する。図1は、本発明の実施の形態におけるシステム構成図を示している。図1の101は本システムにタスクを入力するタスク入力部である。タスク入力部101によって入力されたタスクは、タスク情報102に記憶される。103はタスクによって処理されるワークや部品に関する処理条件などを入力する条件入力部である。条件入力部103によって入力された情報は、ワーク・部品情報104に記憶される。105はロボットや部品・ワークなど環境の幾何学モデルを入力するモデル入力部である。モデル入力部105によって入力された情報は、幾何モデル106に記憶される。107は対象となるロボットを登録し、その情報を設定するロボット登録部である。ロボット登録部107によって登録された情報は、ロボット情報108に記憶される。109はロボットの動作展開に関するルールを登録するルール登録部である。ルール登録部によって登録された情報は、展開ルール情報110に記憶される。ワーク・部品情報104、幾何モデル106、ロボット情報108および展開ルール情報110のデータベースは、タスクが入力される以前に設定しておく必要がある。またこれらのデータベースは全て関連付けられて記憶されている。
【0017】
図1において、111はタスク情報102にアクセスして、タスクの複数ロボットへの分配(割当て)を最良優先探索により決定するタスク分配計画部である。112はタスク情報102にアクセスしてタスクの処理順序を最良優先探索により決定するタスク処理順計画部である。タスク分配計画部111およびタスク処理順計画部112は、その内部に、優先探索処理時の評価基準を計算する評価基準計算部(111a,112a)を備えている。113は各ロボットに割当てられたタスクについて、ロボットの動作手順と軌道を生成するロボット動作計画部である。ロボット動作計画部113によって生成された軌道は、動作プログラム114に記憶される。115は複数台のロボット同士が衝突を起こす危険性がある場合に、ロボット同士が衝突を起こさないように動作プログラム114に修正を加えるロボット間衝突回避動作計画部である。
【0018】
図2は、3台のロボット201a,201b,201c(R1,R2,R3)によってワークWに部品A〜Eを組み付ける組立ロボットセルを示している。部品が組み付けられる前のワークWがベルトコンベア202によって図の位置に供給され、組み付け後、同様にベルトコンベア202によってワークWが搬出される。203a〜203dは部品供給装置である。部品A〜Eは部品供給装置203a〜203dのいずれかから供給される。204a〜204cはツールホルダである。部品の組み付けに必要なハンド(グリッパ)を数種類保持している。ロボット201a〜201cは組み付ける部品に応じて、ハンド部分を交換しながら作業を遂行する。
【0019】
図3は、図2に示した組立作業の作業情報を示している。図3(a)は、組立作業のタスクを記述している。同図において、T0−0〜T0−5はワークWおよび部品A〜Eを所定位置に供給するタスクを示している。T1〜T5はそれぞれ部品A〜EをワークWの指定位置に組み付けるタスクを示している。T6は組み付け後のワークWを搬出するタスクを示している。ここで、ロボットR1〜R3が実行可能なタスクはT1〜T5である。また、T0−0からT6までのタスクをこの順に実行するのではなく、組立の工程上、制約されるタスク間の先後関係を満足するように実行する。図3(b)はタスク間の先後関係を指定するタスクグラフを示している。図中の矢印が先後関係を示している。例えば、T3(部品Cの組み付け)はT1(部品Aの組み付け)およびT2(部品Bの組み付け)の後でなければ実行できない。
【0020】
まず、本発明に係わる第1の実施の形態について説明する。
図3(a)のタスク記述と(b)のタスクグラフ(先後関係)は、図1のタスク入力部101から入力され、タスク情報102に記憶される。タスク記述とタスクグラフが入力されると、タスク処理順計画部112は、図3(c)に示すように、並列して処理可能な複数のタスクを1つのタスクセットにまとめ、タスクセットの処理順序を示すタスクセットリストを生成する。すなわち、TaskSet0→TaskSet1→TaskSet2→TaskSet3→TaskSet4の順に処理される。ここで、破線で示したTaskSet0およびTaskSet4はロボット担当外のタスクセットなので、以降は省略して(削除されているとして)説明する。
タスク処理順計画部112によって図3(c)に示すタスクセットリストが生成されると、図1のタスク分配計画部111では、タスクセットに対する担当ロボットの組(以降、担当ロボットセットと記述)の候補の中から、最良なものを繰り返し探索(最良優先探索)することによって、ロボットへのタスク分配(割当て)を決定する。
【0021】
図4は、最良優先探索で使用する探索木のデータ構造を示している。図4(a)に示すように探索木はツリー構造で表され、図中のn0〜n6はツリーのノードを示している。探索木の各ノードは探索過程の状態を示し、ノードの親子関係は探索状態の遷移過程を示している。本発明では、探索木の各ノードをタスクセットに対する担当ロボットセットの候補に対応させる。また、各ノードは、実際には図4(b)に示す2つの連結リスト401および402に分けて保存される。401は展開済み(子ノードを持つ)ノードを格納するClosedListである。402は展開候補(未展開:子ノードを持たない)ノードを格納するOpenListである。403a〜403fは親ノードへのポインタであり、(a)に示したツリーの枝に相当する。図4(c)は、連結リスト内の次ノードを示すリンク(破線の矢印)と親ノードへのポインタ以外に各ノードが保持するデータを示している。(c)に示したデータの詳細については後述する。
【0022】
図5は、タスク分配計画部111のフローチャートを示している。
図5の探索木の初期化(S5−1)では、図4に示した探索木のルートノードのみを生成する処理を行う。すなわち、ClosedListは空で、OpenListにノードが1つ生成される。この初期ノードにおいて、現在のタスクセットptr_CurTaskSetはNullを指し、次のタスクセットptr_NextTaskSetは図3(c)に示したタスクセットリストの先頭ノードTaskSet1へのポインタを指すように設定する。また、作業時間合計をゼロに設定する。S5−2では、探索木の未展開ノード(OpenList)から評価値が最小となるノードを選択し(選択されたノードをNとする)、S5−3にてノードNをClosedListに移し変える。本発明では、各ノードが保持する作業時間合計値を評価基準としてノードの選択を行う。S5−1の初期化直後では、ルートノードが選択される。S5−4では、ノードNが保持するptr_NextTaskSetがNullかどうかチェックされる。Nullではない場合は、ノードNが保持するptr_NextTaskSetが指すTaskSetについて、担当ロボットセットの候補を求めるループに処理が移る。
【0023】
例えば、図3(c)のTaskSet1 ( T1, T2 ) に対して図2のロボットR1〜R3から担当ロボットセットの候補を全て求めると、( R1, R1 ), ( R1, R2 ), ( R1, R3 ), ( R2, R1 ), ( R2, R2 ), ( R2, R3 ), ( R3, R1 ), ( R3, R2 ), ( R3, R3 )の9通りとなる。S5−5aのループの先頭では、ループを回る度に例に示した担当ロボットセットの候補を1つづつ生成する。S5−5bでは生成された候補に対して、各ロボットの実行可否を判断し、可能であればS5−5cで各ロボットの担当タスク候補について動作プログラムを生成する。S5−5bおよびS5−5cの処理は図1のロボット動作計画部113に依頼される。
【0024】
ロボット動作計画部113では、ワーク・部品情報104、幾何モデル106、ロボット情報108、展開ルール情報110を利用して、担当タスク候補に対する実行可否判断と動作プログラム生成を各ロボット別々に処理する。なお、ワーク部品情報や展開ルールなど作業用各種データベースを利用して、タスク記述(作業プログラム)からロボットの動作プログラムを生成する技術は、文献「新井,井床,野吾:産業用ロボット簡易教示システム,日本ロボット学会誌 Vol.17, No.2, pp.186−189, 1999」などに開示されており、公知の技術である。ここでは、図2に示した組立作業を例に具体例を説明する。
図6はワーク・部品情報104の例を示している。図6において、601および602はそれぞれ部品A、部品供給装置を示している。図中のtool_typeは部品Aを把持するのに適合するハンドのタイプを示している。positionは部品Aに固定された座標系603の原点の位置(姿勢を含む)を示している。この位置データは、部品が供給される部品供給装置602に固定された座標系604を基準にした値として記述されている。approach_posは、ロボットを部品Aの傍に接近させる際に、ロボットのTCPを到達させる位置を示している。この位置データは部品Aの座標系603を基準にした座標系605の原点位置として表される。catch_posは、ロボットが部品Aを把持する際に、ロボットのTCPを到達させる位置を示している。この位置データは部品Aの座標系603を基準にした座標系606の原点位置として表される。leave_posは、ロボットが部品Aを把持した後、部品供給装置から一定距離離脱する際に、ロボットのTCPを到達させる位置を示している。この位置データは部品Aの座標系603を基準にした座標系607の原点位置として表される。
【0025】
ロボット動作計画部113の実行可否判断処理では、図6に示した部品情報を参照して、適合ツールがロボット自身あるいはツールホルダに保持されているか、座標系605から607の原点位置がロボットの動作範囲内にあるか、をチェックする。担当タスク候補が実行可能と判断された場合は、ロボット動作計画部113は展開ルール情報110に従って、タスク記述をサブタスクへと可能な限り展開する。図7は展開ルール情報110の例を示している。
図7において、701はPlaceタスクの展開ルールを示している。これは、タスク記述 「Place X ( position ) on Y」を矢印(⇒)以降のサブタスクの列に展開することを示している。701内の「IF Robot.tool_type != X.tool_type then ChangeTool X」は、ロボットが現在装着しているツールタイプが部品Xのツールタイプに一致しない場合にツールの交換(ChangeTool X)を行うことを示している。702は「ChangeTool X」の展開ルールを示している。701内の「Approach X」はロボットのTCPを部品Xのapproach_posまで接近させるサブタスク記述である。「PickUp X」はロボットに部品Xをピックアップさせるサブタスク記述である。703は「PickUp X」の展開ルールを示している。このように、タスクがサブタスク列に、サブタスクがサブサブタスク列に次々に展開され、最終的にロボットコントローラが直接実行可能なロボット言語で記述された動作プログラムまでブレークダウンされる。その際、ワーク・部品情報104、幾何モデル106およびロボット情報108を参照して具体的なロボットの動作経路データを生成する。
【0026】
ただし、「Approach X」については、展開ルールに基づくタスク展開ではなく、ロボット動作計画部113内部で障害物回避軌道計算処理を行う。障害物回避軌道計算処理では、「Approach X」の前のサブタスク終了位置を開始点として、ツールや把持ワークを含めたロボット全体が障害物と衝突しないように、ロボットのTCPをXのapproach_posまで到達させる動作軌道を計算する。ただし、対象とするロボット以外のロボットの可動部分は障害物に含めず、対象ロボット自身と固定障害物との衝突回避を考慮する。
また、「Approach Robot.home_pos」において、Robot.home_posは図1のロボット情報108に登録されたロボットのホーム位置である。このホーム位置は、ロボット同士が衝突する可能性の無い安全な領域内に設定する。このサブタスクは、「Put X Y.position1」を実行後、ロボットを安全な領域内に固定障害物との衝突回避を考慮して退避させるためのものである。また、ロボットが図2の組み立てセルに登録された時点では、各ロボットは各ホーム位置にあるものとする。したがって、各ロボットが最初のタスクを実行するときは、必ずホーム位置から動作を開始するものとする。
【0027】
以上のようにして、ロボット動作計画部113は図3(a)に示すタスク記述を図8に示すようなロボット言語で記述された動作プログラムに変換する。
タスクセットの担当ロボットセットの候補について、各ロボットの動作プログラム生成が終了すると、図5に示すロボット間衝突回避(S5−5d)が行われる。この処理は、図1のロボット間衝突回避動作計画部115に依頼される。
ロボット間衝突回避動作計画部115は、S5−5cで生成された各ロボットの動作プログラムの各移動命令(MOVJやMOVL)の軌道、あるいはその軌道の経路に内分点を追加することによって複数に分割された各軌道に対して、ロボット同士が衝突せず、かつ全体の作業時間が最小となるように異なるロボット間での軌道の実行順序を決定し、その実行順序に従って各ロボットの各軌道を実行させられるように各動作プログラムに変更を加える。また、図1には、全体の作業時間が最小となる軌道の実行順序を決定するため、ロボット間衝突回避動作計画部115は内部に最適化処理部115aを備えている。
【0028】
図10は、異なるロボット間での軌道の実行順序の例を示している。図10において、A1〜A3、A4−0〜A4−3はロボットAの移動命令の軌道を示している。B1−0〜B1−3、B2〜B4はロボットBの移動命令の軌道を示している。ここで、A4−0〜A4−3は元々の移動命令A4の軌道を4分割した軌道を示している。B1−0〜B1−3についても同様である。図中の矢印1105a〜1105cは異なるロボット間での軌道の実行順序を示している(冗長なものを省いて必要最小限の実行順序関係のみを記述)。例えば、1105aはロボットAの軌道A3が実行された後にロボットBの軌道B−1を実行させることを示している。
図11は、図10に示した軌道の実行順序にしたがって修正が加えられた動作プログラムの例を示している。1105a〜1105cの始点と終点にIO命令(DOUTおよびWAIT)が挿入されている。図11のOT#とIN#はロボットコントローラのIO入出力チャンネル間の接続情報(IOマップ)を参照して番号が割り振られる。
また図10に示したように異なるロボット間での軌道の実行順序を計算することにより、複数ロボット全体の作業時間(図のTe−Ts)を計算することが可能である。
【0029】
図5のS5−5eでは、ptr_NextTaskSetで示されるタスクセットについて、ロボット間衝突回避S5−5dを行った結果得られる作業時間を取得し、親ノード(ノードN)の作業時間合計値との和を該当タスクセットまで含めた作業時間合計値とする。このS5−5eは、タスク分配計画部111内部の評価基準計算部111aの処理に相当する。
図5のS5−5fでは探索木のOpenListに新規ノードを作成し、S5−5aで選択した担当ロボットセットの候補、S5−5dのロボット間衝突回避で求まる該当タスクセットの作業時間、S5−5eで計算した該当タスクセットまでの作業時間合計値を保存する。さらに、ノードNのptr_NextTaskSetを新規作成ノードのptr_CurTaskSetとして保存し、図3(c)のタスクセットリストからptr_CurTaskSetに該当するタスクセットの次のタスクセットへのポインタを取得し、そのポインタを新規作成ノードのptr_NextTaskSetとして保存する。
【0030】
以上のS5−5a〜S5−5fまでの処理を全ての担当ロボットセットの候補について行い、S5−5aにて候補の選択がすべて終了したと判断されると、S5−2に戻る。S5−4にてノードNのptr_NextTaskSetがNullとなった場合、タスクセットリストの最後のタスクセットまで探索処理が到達し、かつ、ノードNが作業時間合計値の最小であることを意味している。その場合はS5−6にて、探索木のルートノードからノードNへ至るツリー上の経路を解として保存する。実際には、ノードNから親ノードを辿ってルートノードまでの経路を求めて順序を逆にする。
S5−7ではS5−6で保存された解の個数をカウントし、解が所定個数得られた場合は全ての処理を終了させ(S5−8a)、解の個数が所定個数以下の場合はS5−2に戻る。
S5−2にてOpenListからノードの選択に失敗した場合、OpenListが空であり、全ての担当ロボットセットの候補について探索が終了したことを意味するので、全ての処理を終了する(S5−8b)。
動作プログラムにしたがって、シミュレータ上のロボットあるいは実機ロボットを動作させる場合には、図3(c)のタスクセットリストの先頭タスクセットから該当する動作プログラムを順次プレイバックすればよい。
【0031】
以上説明したように、タスク分配・処理順の各候補に対する各ロボットの動作プログラムを作成する際、動作開始位置と動作終了位置をロボット同士が衝突することの無い安全な領域内に設定し、他のロボットを除いた固定障害物と該当ロボットとの衝突回避を考慮している。複数台のロボットが衝突する可能性がある場合は、該当するロボットの該当する動作プログラムを構成する動作命令の軌道、あるいはその軌道を有限個に分割した軌道それぞれに対して、該当する動作プログラム全体の作業時間が最小となるように異なるロボット間での軌道の実行順序を決定することによってロボット間の衝突を回避している。したがって、作業内のロボットの移動距離が長い場合や動作領域のほとんどをロボット間で共有する場合でも作業時間の増加を極力抑えることができ、なおかつロボット間でデッドロック状態が生じることがない。また、ロボット間衝突回避動作計画は、動作プログラム内の軌道を細かく分割するが、同一動作プログラム内での実行順序は変更しないので、演算量の急激な増加を抑えることができる。
【0032】
つぎに、本発明に係わる第2の実施の形態を説明する。第2の実施の形態では、図5のロボット間衝突回避処理(S5−5d)において、図3(c)のタスクセットリストの先頭のタスクセットからNextTaskSetで指定されたタスクセットまでの全てのタスクセットを考慮し、そのタスクセット全てに係わるロボットの動作プログラムを対象として、ロボット間衝突回避動作計画を行う。例えば、図5のフローチャートにおいて、ptr_NextTaskSetが図3(c)のTaskSet2を指している場合、S5−5dではTaskSet1とTaskSet2を含めてロボット間衝突回避動作計画を行う。
複数のタスクセットを含めてロボット間衝突回避動作計画を行う場合、タスク間の先後関係を満足するようにしなければならない。例えば、図3(b)は、部品AおよびBをワークWに組み付けた後、部品CをワークWに組み付けることを示している。そこで、タスク間の先後関係とロボット動作間の先後関係との対応を明確にするために、図9に示すようにトリガ入力箇所(TRG_IN)とトリガ出力箇所(TRG_OUT)を予め記述した展開ルールを、展開ルール情報部(図1の110)に用意する。そして、ロボット間衝突回避動作計画部(図1の115)は内部の先後関係考慮部115bを使用して、先行タスクのTRG_OUT以降に後行タスクのTRG_IN以降を動作させる制約の元でロボット間衝突回避動作計画を行う。つまり、部品Aおよび部品Bの組み付け動作が完了する前に、ロボットに部品CをピックアップさせてワークW付近まで移動させることが可能となる。
【0033】
また、連続する2つのタスクセットにおいて同じロボットが両方のタスクセットでタスクを実行する場合、S5−5cで別々の動作プログラムとして作成されたものを1つの動作プログラムに併合する処理を行う。ここでは、図1に示したようにロボット動作計画部113の内部に動作プログラム併合部113aを実装する。動作プログラム併合部113aは内部に軌道削除部113a1と軌道追加部113a2を備えている。軌道削除部113a1は、動作プログラムの最終作業点から終了位置への退避動作と次工程動作プログラムの開始位置から開始作業点へのアプローチ動作を削除する。そして、軌道追加部113a2は、動作プログラムの最終作業点と次工程動作プログラムの開始作業点間を移動する軌道を追加する。この移動軌道の削除処理と追加処理の働きによって2つの動作プログラムが1つに併合される。
以上説明したように、複数の動作プログラムを1つに併合する際にロボットの無駄な動作を削除し、かつ、タスク間の先後関係をロボット動作の先後関係に厳密に反映させてロボット間衝突回避を行っているので、ロボットの待ち時間がより短くなり、全体の作業時間がさらに短縮される。
【0034】
つぎに、本発明に係わる第3の実施の形態を説明する。第3の実施の形態では、図1に示したタスク分配計画部111、タスク処理順計画部112、ロボット動作計画部113、ロボット間衝突回避動作計画部115をそれぞれ独立したソフトウエアオブジェクト(エージェント)として、計算機ネットワーク上に実装する。これらのエージェントは、タスク情報102を介して計算機ネットワーク上で分散処理を進める。また、タスク情報102も1つの独立したエージェントしても良い。
さらに、ロボット動作計画部113をロボットごとに独立したエージェントとして、計算機ネットワーク上に実装する。これらのエージェントは、タスク情報102を介して計算機ネットワーク上で並列かつ分散して処理を進める。
【0035】
以上説明したように、ロボット動作計画部はロボット自身と固定障害物(他のロボットを除く)との衝突回避を考慮しているだけなので、ロボットごとの動作計画演算を独立に行うことができる。したがって、ロボット動作計画部をロボットごとに独立したエージェントとして計算機ネットワーク上に実装することにより、並列分散処理が可能となる。
【0036】
【発明の効果】
以上述べたように本発明では、動作開始位置と動作終了位置をロボット同士が衝突することの無い安全な領域内に設定して各ロボットの動作プログラムを作成し、その動作プログラムをもとにロボット間衝突回避処理を行うので、ロボット間でデッドロック状態が生じることがないという効果がある。
また、ロボット間衝突回避動作計画部では、複数台ロボットの動作プログラムを構成する動作命令の軌道あるいはその軌道を有限個に分割した軌道それぞれに対して、ロボット同士が衝突せず、かつ全体の作業時間が最小となるように異なるロボット間の軌道の実行順序を決定しているので、作業内のロボットの移動距離が長い場合や動作領域のほとんどをロボット間で共有する場合でも作業時間の増加を極力抑えることができるという効果がある。
また、ロボット間衝突回避動作動作計画部は、動作プログラム内の軌道を細かく分割するが、同一動作プログラム内での実行順序は変更しないので、演算量の急激な増加を抑えることができるという効果がある。
また、複数の動作プログラムを1つに併合する際にロボットの無駄な動作を削除し、かつ、タスク間の先後関係をロボット動作の先後関係に厳密に反映させてロボット間衝突回避を行っているので、ロボットの待ち時間がより短くなり、全体の作業時間がさらに短縮される。
さらに、ロボット動作計画部はロボット自身と固定障害物(他のロボットを除く)との衝突回避を考慮しているだけなので、ロボット動作計画部をロボットごとに独立したエージェントとして計算機ネットワーク上に実装することにより並列分散処理が可能となるという効果もある。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかわるロボット教示システムの構成図
【図2】組立ロボットセルの例を示す図
【図3】作業情報の例を示す図
【図4】本発明の実施の形態にかかわる探索木のデータ構造を示す図
【図5】本発明の実施の形態にかかわるタスク分配の優先探索のフローチャート
【図6】ワーク・部品情報の例を示す図
【図7】展開ルール情報の例を示す図
【図8】ロボットの動作プログラムの例を示す図
【図9】トリガ入出力箇所を指定した展開ルール情報の例を示す図
【図10】ロボット間衝突回避動作計画の概要を示す図
【図11】ロボット間衝突回避動作計画によって修正された動作プログラムの例を示す図
【図12】従来例1の初期解を示す図
【図13】従来例2のロボット間衝突回避の原理を示す図
【図14】従来例3の動作原理を示す図
【図15】従来例4の構成を示す図
【符号の説明】
101:タスク入力部
102:タスク情報
103:条件入力部
104:ワーク・部品情報
105:モデル入力部
106:幾何モデル
107:ロボット登録部
108:ロボット情報
109:ルール登録部
110:展開ルール情報
111:タスク分配計画部
112:タスク処理順計画部
111a, 112a:評価基準計算部
113:ロボット動作計画部
113a:動作プログラム併合部
113a1:軌道削除部
113a2:軌道追加部
114:動作プログラム
115:ロボット間衝突回避動作計画部
115a:最適化処理部
115b:先後関係考慮部
201a〜201c:ロボット
202:ベルトコンベヤ
203a〜203d:部品供給装置
204a〜204c:ツールホルダ
401:探索木のClosedList
402:探索木のOpenList
403a〜403f:探索木ノードの親ノードへのポインタ
601:部品A
602:部品供給装置
603:部品Aに固定された座標系ΣA
604:部品供給装置に固定された座標系Σpf1
605:部品Aへの接近位置を示す座標系Σaprch
606:部品Aの把持位置を示す座標系Σcatch
607:部品A把持後の離脱位置を示す座標系Σleave
701:Placeタスクの展開ルール
702:ChangeToolサブタスクの展開ルール
703:PickUpサブタスクの展開ルール
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a teaching system that determines work sharing and a work order to a plurality of robots installed such that their operation areas overlap with each other, and creates an operation program for each robot. Rather, the present invention relates to a system that determines work sharing and work order such that the overall work time is shortened.
[0002]
[Prior art]
Automobile production lines use multiple industrial robot manipulators to automate operations such as spot welding. Here, a large number of robots are arranged so close that their operation areas overlap. Conventionally, the teaching work of a plurality of robots close to each other has conventionally been performed by the instructor while actually operating the operation of each robot one step at a time, and the operation trajectory of each robot so that interference does not occur between the plurality of robots. The execution timing (interlock) between each motion trajectory was taught by trial and error. However, there is a problem that it is very difficult to operate a plurality of robots safely and efficiently by trial and error teaching by a teacher. When trying to operate a plurality of robots efficiently, the teaching operation becomes very complicated, and it takes a very long time to teach and check the operation. In particular, in high-mix low-volume production where the type of product changes frequently, the teacher will have to redo all the teaching work every time the type of product is changed. In addition, the ratio of the time of the indirect process such as the teaching operation is increased, and the productivity is extremely reduced. Also, since the ratio of the instructor directly involved in the teaching operation is large, a rise in labor costs is also a problem.
In recent years, instead of direct teaching by a teacher, a method and an apparatus have been proposed which increase the efficiency of teaching work and operation control of a plurality of robots using a computer.
[0003]
In Conventional Example 1, when simulating a work time, which is an evaluation criterion at the time of repetitive search, if there is a possibility that a collision occurs when a plurality of robots perform work at the same time, a priority is set for the robots, and a higher priority is set. Collisions are avoided by prioritizing the robot's work and waiting for lower-priority robots to eliminate the possibility of collision. FIG. 12 shows an example of an initial solution of work assignment and work order. In FIG. 12, R1 to R3 indicate the robot name, G1 to G14 indicate the spot welding spot groups, and reverse / order indicates from which direction the spot groups are processed. When a collision occurs between the robots when simulating the work sharing and the work order from R1 to R3 shown in FIG. 12, if a collision occurs between the robots, the point group of the robot with a higher priority is determined according to the initial priority R1 → R2 → R3. The robot is executed first, and the execution of the dot group of the robot having the lower priority is waited until the processing of the dot group is completed (for example, Patent Document 1).
[0004]
In Conventional Example 2, when simulating a work time, which is an evaluation criterion at the time of repetitive search, if there is a possibility that a collision will occur when a plurality of robots perform work at the same time, the work progress state of the currently operating robot is monitored. The collision is avoided by making another robot wait until the possibility of the collision is eliminated. FIG. 13 shows a procedure for avoiding collision between robots. In FIG. 13, reference numerals 1 to 9 indicate welding lines. The upper part of the figure shows that the robot 1 is currently processing the work of the welding line 1, the area where the robot 1 passes from the current position of the robot 1 to the end position of the welding line 1 (interference area), and the robot 2 is now processing. This indicates that the area where the robot 2 passes from the start position to the end position of the welding line 4 interferes (overlaps). In this state, the operation of the robot 2 is put on standby. In the lower part of the figure, the passing area of the robot 1 is updated according to the work progress status of the robot 1, and the robot 2 starts working when the overlapping area with the passing area of the robot 2 disappears (for example, Patent Document 2). .
[0005]
In Conventional Example 3, when teaching data specifying work assignment and work order is given to a plurality of robots, collision between the robots is avoided, and the robots are efficiently operated with a minimum waiting time of the robots. A control device is disclosed. FIG. 14 illustrates the operation principle of the robot control device. In the same figure, (A) shows a work point between the robot A and the robot B and an operation path between the work points. (B) shows an interference table between the work points of the robots A and B calculated by the interference extraction means based on the work point data of (A). (C) shows the priority order table of the robot at the interfering work point calculated by the non-interference passing order determination means. FIG. 14B shows that interference occurs when the robots A and B work simultaneously at the work points 2a and 2b, 3a and 3b, and 4a and 4b. FIG. 14C shows that the tasks 2a, 3a, and 4a of the robot A are executed prior to the tasks 2b, 3b, and 4b of the robot B. When creating the priority order table, the sum of the remaining work time of each robot and the waiting time at the work point is compared, and the longer one is selected to determine the priority order (for example, Patent Document 3). .
[0006]
In Conventional Example 4, when a plurality of machines (welding robots) are assigned work (welding line), a control device and a control method for preferentially determining a work route of each machine from a machine with a large amount of work are disclosed. It has been disclosed. FIG. 15 shows a configuration diagram of the control device. In the figure, a CAD / CAM system 2 creates information necessary for work assigned to a plurality of machines. The work information storage unit 4 stores the work information created by the CAD / CAM system 2. The work amount evaluation unit 6 evaluates the work amount of each machine. The machine selection unit 8 preferentially selects a predetermined number (here, N) of machines with a large amount of work. The work route selection unit 10 creates a plurality of work routes for each of the N machines selected by the machine selection unit 8 and evaluates the work time. In the work route selection unit 12, for each of the N machines selected by the machine selection unit 8, a predetermined number (here, a short work time) of a plurality of routes created by the work route evaluation unit 10 with a shorter work time is given priority. M). The whole work route evaluation unit 14 creates a plurality of work routes for all the machines that work in parallel with the work for each of the N × M work routes selected by the work route selection unit 12, and for all of them, Evaluate working time. The all-work-path selecting unit 16 selects a work path with the shortest working time from the N × M work paths, and the all-work-path evaluating unit 14 performs processing on all the machines other than the machine in charge of the selected work. A work route with the shortest work time is selected from the created plurality of work routes. The machine control unit 22 controls a plurality of machines according to the work paths of all the machines selected by the all work path selection unit 16. When the operations along the work (welding line) path of a plurality of welding robots collide, the welding line is divided into a plurality of parts so as to reduce the interference state, and is processed by all the work path evaluation units (for example, Patent Document 4).
[0007]
[Patent Document 1]
Japanese Patent No. 2984218
[Patent Document 2]
Japanese Patent No. 2778922
[Patent Document 3]
JP-A-11-347984
[Patent Document 4]
JP 2002-116816 A
[0008]
[Problems to be solved by the invention]
In the methods disclosed in Conventional Example 1 and Conventional Example 2, the execution of robot operations is waited for in units of a welding line or an entire group of spots (a plurality of spots of spot welding), thereby avoiding collision between the robots. The work time of the work is simulated, and the work sharing and the work order are determined based on the simulation value as an evaluation criterion. Therefore, if the moving distance within one operation (welding line or dot group) becomes longer, the passage area of the robot for the operation becomes wider and the operation time becomes longer, so that the waiting time of the robot increases and the total operation time becomes longer. There is a problem that (calculated value) becomes longer. Further, when a plurality of robots are arranged closer to each other and most of the operation area is shared between the robots, there is a problem that the possibility of collision frequently occurs, which similarly leads to an increase in working time.
[0009]
In the method disclosed in Conventional Example 3, referring to FIG. 14, the robot B waits at the work point 1b until the robot A finishes the work at the work point 2a and passes through the interference area 2a. However, actually, since there is a time for the robot B to move from the work point 1b to the work point 2b, it is not always necessary to keep the robot B at the work point 1b until the robot A passes the interference area 2a. In other words, there is ample room for further reducing the overall work time, but there is a problem that no further consideration can be given by this method since no consideration is given to the movement trajectory between the work points.
[0010]
In the method disclosed in the conventional example 4, when the robots collide with each other, the corresponding welding line is divided into a plurality of parts, and the calculation is performed in all the work route evaluation units (14 in FIG. 15). It does not mean that a direct calculation for avoiding a collision such as setting is performed. Since the work path is created in consideration of the processing order of the weld line, the welding direction, and the movement path to the welding start point, an enormous number of combinations occur by dividing the weld line. Processing is performed to select one that does not cause a collision from among the enormous combinations of work routes. Therefore, there is a problem that an explosive increase in the amount of computation is caused and efficient collision avoidance cannot be performed. Further, since the movement trajectory from the welding line to the welding line is not subject to division, there is also a problem that a large waiting time is required in moving between the welding lines.
[0011]
The present invention has been made in view of the above problems, and does not consider only one entire operation or an operation point, but considers a movement trajectory between operations (points) and each trajectory in the operation in detail. A robot teaching system that minimizes the increase in work time even when the moving distance of the robots inside is long or when most of the operating area is shared between robots, and that does not cause deadlock between robots. It is intended to provide.
It is still another object of the present invention to provide a robot teaching system having an efficient robot collision avoidance function without causing a sudden increase in the amount of computation even if the trajectory is carefully considered.
[0012]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, the robot teaching system according to claim 1 evaluates each of the robots from a combination of task sharing and task processing order so as to perform a predetermined task on a plurality of robots. In a robot teaching system that preferentially searches for a reference that minimizes or maximizes a reference and generates an operation program, a task distribution planning unit that distributes the work to the plurality of robots, and a robot for each of the distributed tasks A task processing order planning unit that plans a task processing order within, avoiding collision between each robot and an obstacle based on the task distribution plan and the processing order of the tasks, and an operation start position of each robot. A robot operation planning unit that generates an operation program and calculates an operation time in which the end position is set to an area where the robots do not collide with each other; If there is a trajectory in which a collision occurs between robots in a gram, the operation program is changed and the operation time is changed so that the trajectory is divided into a plurality of parts and the divided trajectory avoids collision between robots. And an evaluation criterion calculation unit that calculates the evaluation criterion based on the operation time of the robot operation planning unit and the operation time of the inter-robot collision avoidance operation planning unit. It is characterized by the following.
[0013]
3. The robot teaching system according to claim 2, wherein the inter-robot collision avoidance operation planning unit includes an optimization processing unit that changes an operation plan of each robot so that the operation time of the plurality of robots is minimized. It is assumed that.
According to a third aspect of the present invention, there is provided a robot teaching system including an operation program merging unit that merges a plurality of the operation programs of the same robot into one operation program in an execution order.
5. The robot teaching system according to claim 4, wherein the operation program merging unit deletes a trajectory from a last work point to an end position of the operation program and a trajectory from a start position of the next process operation program to a start work point. And a trajectory adding unit that adds a trajectory from the final working point to the starting working point between the two operation programs.
[0014]
6. The robot teaching system according to claim 5, wherein the task processing order planning unit sets a plurality of tasks that can be executed in parallel as one task set based on a task graph describing a predecessor-relationship between the tasks, and The task distribution planning unit has a function of searching for a combination of robots that execute each task from the first task set in the task set list. It is assumed that.
7. The robot teaching system according to claim 6, further comprising: a development rule information unit that associates the front-back relationship between the tasks with the operation front-back relationship between the robots, wherein the robot collision avoidance operation planning unit determines the front-back relationship between the tasks. The present invention is characterized in that a preceding / rear relationship consideration unit for changing an operation program based on the first and second relations is provided.
[0015]
8. The robot teaching system according to claim 7, wherein the task distribution planning unit, the task processing order planning unit, and the inter-robot collision avoidance operation planning unit are software objects that can be independently and separately processed. To do.
The robot teaching system according to claim 8, wherein the robot operation planning unit is an independent software object for each robot.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 shows a system configuration diagram according to an embodiment of the present invention. Reference numeral 101 in FIG. 1 denotes a task input unit for inputting a task to the present system. The task input by the task input unit 101 is stored in the task information 102. Reference numeral 103 denotes a condition input unit for inputting processing conditions related to a workpiece or a component processed by a task. The information input by the condition input unit 103 is stored in the work / part information 104. Reference numeral 105 denotes a model input unit for inputting a geometric model of an environment such as a robot, a part or a work. Information input by the model input unit 105 is stored in the geometric model 106. A robot registration unit 107 registers a target robot and sets the information. Information registered by the robot registration unit 107 is stored in the robot information 108. Reference numeral 109 denotes a rule registration unit for registering a rule relating to the movement development of the robot. The information registered by the rule registration unit is stored in the deployment rule information 110. The database of the work / part information 104, the geometric model 106, the robot information 108, and the development rule information 110 needs to be set before a task is input. These databases are all stored in association with each other.
[0017]
In FIG. 1, reference numeral 111 denotes a task distribution planning unit that accesses the task information 102 and determines distribution (assignment) of tasks to a plurality of robots by a best priority search. A task processing order planning unit 112 accesses the task information 102 and determines the processing order of the tasks by the best priority search. Each of the task distribution planning unit 111 and the task processing order planning unit 112 includes an evaluation criterion calculation unit (111a, 112a) that calculates an evaluation criterion in the priority search process. Reference numeral 113 denotes a robot operation planning unit that generates a robot operation procedure and a trajectory for a task assigned to each robot. The trajectory generated by the robot operation planning unit 113 is stored in the operation program 114. Reference numeral 115 denotes an inter-robot collision avoidance operation planning unit that corrects the operation program 114 so that the robots do not collide with each other when there is a risk of collision between a plurality of robots.
[0018]
FIG. 2 shows an assembly robot cell for assembling parts A to E onto a workpiece W by three robots 201a, 201b, 201c (R1, R2, R3). The work W before the components are assembled is supplied to the position shown in the figure by the belt conveyor 202, and after the assembly, the work W is similarly unloaded by the belt conveyor 202. 203a to 203d are component supply devices. The components A to E are supplied from any of the component supply devices 203a to 203d. 204a to 204c are tool holders. Holds several types of hands (grippers) necessary for assembling parts. The robots 201a to 201c perform work while exchanging hand parts according to parts to be assembled.
[0019]
FIG. 3 shows work information of the assembly work shown in FIG. FIG. 3A describes the task of the assembly work. In the drawing, T0-0 to T0-5 indicate tasks for supplying the workpiece W and the parts A to E to predetermined positions. T1 to T5 indicate tasks for assembling the parts A to E at the designated positions of the work W, respectively. T6 indicates a task of unloading the assembled work W. Here, tasks that can be executed by the robots R1 to R3 are T1 to T5. Also, the tasks from T0-0 to T6 are not executed in this order, but are executed so as to satisfy the precedent-rear relationship between tasks restricted in the assembly process. FIG. 3B shows a task graph for specifying the precedent and succeeding relationship between tasks. Arrows in the figure indicate the front-back relationship. For example, T3 (assembly of component C) can be executed only after T1 (assembly of component A) and T2 (assembly of component B).
[0020]
First, a first embodiment according to the present invention will be described.
The task description of FIG. 3A and the task graph of FIG. 3B (before and after) are input from the task input unit 101 of FIG. When the task description and the task graph are input, the task processing order planning unit 112 groups a plurality of tasks that can be processed in parallel into one task set as shown in FIG. Generate a task set list indicating the order. That is, the processing is performed in the order of TaskSet0 → TaskSet1 → TaskSet2 → TaskSet3 → TaskSet4. Here, TaskSet0 and TaskSet4 indicated by dashed lines are task sets not assigned to the robot, and will be omitted from the following description (assuming that they have been deleted).
When the task set list shown in FIG. 3C is generated by the task processing order planning unit 112, the task distribution planning unit 111 of FIG. 1 generates a set of assigned robots (hereinafter referred to as assigned robot set) for the task set. The task distribution (allocation) to the robot is determined by repeatedly searching for the best one from the candidates (best priority search).
[0021]
FIG. 4 shows a data structure of a search tree used in the best priority search. As shown in FIG. 4A, the search tree is represented by a tree structure, and n0 to n6 in the figure indicate nodes of the tree. Each node of the search tree indicates a state of the search process, and the parent-child relationship of the nodes indicates a transition process of the search state. In the present invention, each node of the search tree is made to correspond to a candidate of a robot set in charge of a task set. Further, each node is actually stored in two linked lists 401 and 402 shown in FIG. 4B. Reference numeral 401 denotes a ClosedList that stores expanded nodes (having child nodes). An OpenList 402 stores an expansion candidate (unexpanded: has no child node) node. Reference numerals 403a to 403f denote pointers to parent nodes, which correspond to the branches of the tree shown in FIG. FIG. 4C shows data held by each node other than the link (broken arrow) indicating the next node in the linked list and the pointer to the parent node. Details of the data shown in (c) will be described later.
[0022]
FIG. 5 shows a flowchart of the task distribution planning unit 111.
In the initialization of the search tree in FIG. 5 (S5-1), a process of generating only the root node of the search tree shown in FIG. 4 is performed. That is, ClosedList is empty, and one node is generated in OpenList. In this initial node, the current task set ptr_CurTaskSet points to Null, and the next task set ptr_NextTaskSet is set to point to the pointer to the first node TaskSet1 in the task set list shown in FIG. Also, the total work time is set to zero. In S5-2, a node having the smallest evaluation value is selected from unexpanded nodes (OpenList) in the search tree (the selected node is set to N), and in S5-3, the node N is moved to ClosedList and changed. In the present invention, nodes are selected using the total work time held by each node as an evaluation criterion. Immediately after the initialization in S5-1, the root node is selected. In S5-4, it is checked whether or not ptr_NextTaskSet held by the node N is Null. If the value is not Null, the process proceeds to a loop for obtaining a candidate for the assigned robot set for TaskSet indicated by ptr_NextTaskSet held by the node N.
[0023]
For example, for TaskSet1 (T1, T2) in FIG. 3 (c), when all the candidates for the assigned robot set are obtained from the robots R1 to R3 in FIG. 2, (R1, R1), (R1, R2), (R1, R3), (R2, R1), (R2, R2), (R2, R3), (R3, R1), (R3, R2), and (R3, R3). At the beginning of the loop of S5-5a, each of the candidates for the assigned robot set shown in the example is generated one by one every time the loop is performed. In S5-5b, it is determined whether or not each robot can be executed with respect to the generated candidates. If possible, an operation program is generated for each task candidate assigned to each robot in S5-5c. The processing in S5-5b and S5-5c is requested to the robot operation planning unit 113 in FIG.
[0024]
The robot operation planning unit 113 uses the work / part information 104, the geometric model 106, the robot information 108, and the development rule information 110 to individually determine whether or not to execute the assigned task candidate and generate an operation program. The technique of generating a robot operation program from a task description (work program) using various work databases, such as work part information and deployment rules, is described in the document "Arai, Inoko, Nogo: Simple teaching of industrial robots. System, Journal of the Robotics Society of Japan, Vol. 17, No. 2, pp. 186-189, 1999 ”and the like, and are known technologies. Here, a specific example will be described using the assembly work shown in FIG. 2 as an example.
FIG. 6 shows an example of the work / part information 104. In FIG. 6, reference numerals 601 and 602 denote a component A and a component supply device, respectively. Tool_type in the figure indicates the type of hand that is suitable for gripping the component A. The position indicates the position (including the posture) of the origin of the coordinate system 603 fixed to the component A. The position data is described as a value based on a coordinate system 604 fixed to the component supply device 602 to which the component is supplied. “approach_pos” indicates a position at which the TCP of the robot reaches when the robot approaches the part A. This position data is expressed as the origin position of the coordinate system 605 based on the coordinate system 603 of the part A. catch_pos indicates the position at which the robot's TCP reaches when the robot grips the part A. This position data is expressed as the origin position of the coordinate system 606 based on the coordinate system 603 of the part A. leave_pos indicates the position at which the robot's TCP reaches when the robot grips the component A and then leaves the component supply device by a certain distance. This position data is expressed as the origin position of the coordinate system 607 based on the coordinate system 603 of the part A.
[0025]
In the execution possibility determination process of the robot operation planning unit 113, referring to the component information shown in FIG. 6, whether the matching tool is held by the robot itself or the tool holder, or the origin position of the coordinate system 605 to 607 is determined by the robot operation. Check if it is within the range. If it is determined that the assigned task candidate is executable, the robot operation planning unit 113 expands the task description into subtasks as much as possible according to the expansion rule information 110. FIG. 7 shows an example of the deployment rule information 110.
In FIG. 7, reference numeral 701 denotes a deployment rule of the Place task. This indicates that the task description “Place X (position) on Y” is expanded to a row of subtasks after the arrow (⇒). “IF Robot.tool_type! = X.tool_type then ChangeTool X” in the column 701 indicates that the tool is replaced (ChangeTool X) when the tool type currently mounted on the robot does not match the tool type of the part X. Is shown. Reference numeral 702 denotes an expansion rule of “ChangeTool X”. “Approach X” in 701 is a subtask description that causes the TCP of the robot to approach the approach_pos of the part X. “PickUp X” is a subtask description that causes the robot to pick up the part X. Reference numeral 703 denotes an expansion rule of “PickUp X”. In this way, the tasks are expanded one after another in the sub-task sequence and the sub-tasks are sequentially expanded into the sub-subtask sequence, and finally, the robot controller is broken down to an operation program written in a robot language that can be directly executed. At this time, specific motion path data of the robot is generated with reference to the work / part information 104, the geometric model 106, and the robot information 108.
[0026]
However, for “Approach X”, an obstacle avoidance trajectory calculation process is performed inside the robot motion planning unit 113 instead of task expansion based on the expansion rule. In the obstacle avoidance trajectory calculation process, the TCP of the robot reaches X approach_pos so that the entire robot including the tool and the gripped work does not collide with the obstacle, starting from the end position of the subtask before “Approach X”. The motion trajectory to be calculated is calculated. However, the moving parts of the robot other than the target robot are not included in the obstacle, and the collision avoidance between the target robot itself and the fixed obstacle is considered.
In “Approach Robot.home_pos”, Robot. home_pos is the home position of the robot registered in the robot information 108 of FIG. This home position is set in a safe area where there is no possibility that the robots collide with each other. This subtask is for retracting the robot in a safe area after executing “Put XY.position1” in consideration of avoiding collision with a fixed obstacle. When the robots are registered in the assembly cell of FIG. 2, each robot is assumed to be at each home position. Therefore, when each robot executes the first task, it is assumed that the operation always starts from the home position.
[0027]
As described above, the robot operation planning unit 113 converts the task description shown in FIG. 3A into an operation program described in a robot language as shown in FIG.
When the generation of the operation program of each robot is completed for the robot set in charge of the task set, collision avoidance between robots (S5-5d) shown in FIG. 5 is performed. This processing is requested to the robot collision avoidance operation planning unit 115 in FIG.
The robot-to-robot collision avoidance operation planning unit 115 adds the internal dividing point to the trajectory of each movement command (MOVJ or MOVL) of the operation program of each robot generated in S5-5c or the path of the trajectory to obtain a plurality. For each of the divided trajectories, determine the execution order of the trajectories between different robots so that the robots do not collide with each other and minimize the overall work time, and assign each trajectory of each robot according to the execution order. Modify each operation program so that it can be executed. In FIG. 1, the robot collision avoidance operation planning unit 115 includes an optimization processing unit 115a inside in order to determine the execution order of the trajectory that minimizes the overall work time.
[0028]
FIG. 10 shows an example of the execution order of trajectories between different robots. In FIG. 10, A1 to A3 and A4-0 to A4-3 indicate the trajectories of the movement command of the robot A. B1-0 to B1-3 and B2 to B4 indicate the trajectories of the movement command of the robot B. Here, A4-0 to A4-3 indicate trajectories obtained by dividing the trajectory of the original movement command A4 into four. The same applies to B1-0 to B1-3. Arrows 1105a to 1105c in the figure indicate the order of execution of the trajectories between different robots (only the minimum necessary execution order relationship is described without redundant components). For example, 1105a indicates that the trajectory B-1 of the robot B is executed after the trajectory A3 of the robot A is executed.
FIG. 11 shows an example of an operation program modified in accordance with the execution order of the trajectories shown in FIG. IO instructions (DOUT and WAIT) are inserted at the start and end points of 1105a to 1105c. OT # and IN # in FIG. 11 are assigned numbers with reference to connection information (IO map) between IO input / output channels of the robot controller.
Further, as shown in FIG. 10, by calculating the execution order of the trajectory between different robots, it is possible to calculate the working time (Te-Ts in the figure) of the plurality of robots as a whole.
[0029]
In S5-5e of FIG. 5, for the task set indicated by ptr_NextTaskSet, the work time obtained as a result of performing the robot collision avoidance S5-5d is acquired, and the sum of the work time and the total work time of the parent node (node N) is obtained. It is the total work time including the corresponding task set. This step S5-5e corresponds to the processing of the evaluation criterion calculation unit 111a inside the task distribution planning unit 111.
In S5-5f of FIG. 5, a new node is created in the OpenList of the search tree, the candidate of the assigned robot set selected in S5-5a, the work time of the corresponding task set obtained by avoiding the collision between the robots in S5-5d, S5-5e Save the total work time up to the corresponding task set calculated in. Further, the ptr_NextTaskSet of the node N is stored as the ptr_CurTaskSet of the newly created node, and a pointer to the task set next to the task set corresponding to the ptr_CurTaskSet from the task set list of FIG. As ptr_NextTaskSet.
[0030]
The above processing from S5-5a to S5-5f is performed for all the robot set candidates. When it is determined in S5-5a that the selection of all the candidates has been completed, the process returns to S5-2. When the ptr_NextTaskSet of the node N becomes Null in S5-4, it means that the search process reaches the last task set in the task set list, and that the node N has the minimum total work time. . In that case, in S5-6, the route on the tree from the root node of the search tree to the node N is stored as a solution. Actually, the order is reversed by finding the route from the node N to the root node by following the parent node.
In S5-7, the number of solutions stored in S5-6 is counted, and if a predetermined number of solutions are obtained, all processes are terminated (S5-8a). If the number of solutions is equal to or smaller than the predetermined number, S5 is executed. Return to -2.
If the selection of the node from the OpenList fails in S5-2, the OpenList is empty, which means that the search has been completed for all the assigned robot set candidates, and thus all the processing is ended (S5-8b). .
When the robot on the simulator or the actual robot is operated according to the operation program, the corresponding operation program may be sequentially played back from the first task set in the task set list in FIG.
[0031]
As described above, when creating an operation program of each robot for each candidate in the task distribution / processing order, the operation start position and the operation end position are set in a safe area where the robots do not collide with each other. The collision avoidance between the fixed robot and the corresponding robot except for the robot is considered. If there is a possibility that multiple robots will collide, the trajectory of the motion command that composes the relevant motion program of the relevant robot, or the trajectory obtained by dividing the trajectory into a finite number of individual The collision order between the robots is avoided by determining the execution order of the trajectory between different robots so that the work time of the robot is minimized. Therefore, even when the moving distance of the robot in the work is long or when most of the operation area is shared between the robots, an increase in the work time can be suppressed as much as possible, and a deadlock state does not occur between the robots. In the robot collision avoidance operation plan, the trajectory in the operation program is finely divided, but the execution order in the same operation program is not changed.
[0032]
Next, a second embodiment according to the present invention will be described. In the second embodiment, in the robot collision avoidance processing (S5-5d) in FIG. 5, all tasks from the first task set in the task set list in FIG. 3C to the task set specified by NextTaskSet are performed. In consideration of the set, an operation plan for avoiding collision between robots is performed for a robot operation program related to all the task sets. For example, in the flowchart of FIG. 5, when ptr_NextTaskSet points to TaskSet2 of FIG. 3C, in S5-5d, a robot collision avoidance operation plan including TaskSet1 and TaskSet2 is performed.
When performing a collision avoidance operation plan between robots including a plurality of task sets, it is necessary to satisfy a front-back relationship between tasks. For example, FIG. 3B shows that after the components A and B are assembled on the workpiece W, the component C is assembled on the workpiece W. Therefore, in order to clarify the correspondence between the predecessor relation between tasks and the predecessor relation between robot operations, as shown in FIG. 9, an expansion rule in which a trigger input point (TRG_IN) and a trigger output point (TRG_OUT) are described in advance is defined. , In the deployment rule information section (110 in FIG. 1). Then, the inter-robot collision avoidance operation planning unit (115 in FIG. 1) uses the internal predecessor-relationship consideration unit 115b to perform the inter-robot collision under the constraint that the TRG_OUT of the preceding task and the TRG_IN of the subsequent task operate after TRG_OUT. Make an avoidance action plan. That is, it is possible for the robot to pick up the component C and move it to the vicinity of the work W before the assembly operation of the component A and the component B is completed.
[0033]
Further, when the same robot executes tasks in both task sets in two consecutive task sets, a process of merging those created as separate operation programs in S5-5c into one operation program is performed. Here, as shown in FIG. 1, the operation program merging unit 113a is mounted inside the robot operation planning unit 113. The operation program merging unit 113a includes a trajectory deleting unit 113a1 and a trajectory adding unit 113a2 inside. The trajectory deletion unit 113a1 deletes the retreat operation from the final work point of the operation program to the end position and the approach operation from the start position to the start work point of the next process operation program. Then, the trajectory adding unit 113a2 adds a trajectory that moves between the last work point of the operation program and the start work point of the next process operation program. The two operation programs are merged into one by the operation of the moving trajectory deletion processing and the addition processing.
As described above, when merging a plurality of operation programs into one, unnecessary robot operations are eliminated, and collision between robots is avoided by strictly reflecting the front-back relationship between tasks in the front-back relationship of robot operations. Is performed, the waiting time of the robot is shorter, and the overall working time is further reduced.
[0034]
Next, a third embodiment according to the present invention will be described. In the third embodiment, the task distribution planning unit 111, task processing order planning unit 112, robot operation planning unit 113, and robot collision avoidance operation planning unit 115 shown in FIG. To be implemented on a computer network. These agents perform distributed processing on the computer network via the task information 102. Further, the task information 102 may be one independent agent.
Further, the robot operation planning unit 113 is mounted on a computer network as an independent agent for each robot. These agents proceed in parallel and distributed manner on the computer network via the task information 102.
[0035]
As described above, since the robot operation planning unit only considers collision avoidance between the robot itself and a fixed obstacle (excluding other robots), the operation plan calculation for each robot can be performed independently. Therefore, by implementing the robot operation planning unit on the computer network as an independent agent for each robot, parallel distributed processing becomes possible.
[0036]
【The invention's effect】
As described above, in the present invention, the operation start position and the operation end position are set in a safe area where the robots do not collide with each other, and an operation program for each robot is created. Since the collision avoidance process is performed, there is an effect that a deadlock state does not occur between the robots.
In addition, the robot collision avoidance operation planning unit does not collide with each other on the trajectories of the operation commands constituting the operation program of the plurality of robots or the trajectory obtained by dividing the trajectory into a finite number, and Since the execution order of the trajectories between different robots is determined so that the time is minimized, the work time will increase even when the moving distance of the robot in the work is long or most of the motion area is shared between the robots. There is an effect that it can be suppressed as much as possible.
In addition, the motion planning unit for avoiding motion between robots divides the trajectory in the motion program into small pieces, but does not change the execution order in the same motion program. is there.
In addition, when merging a plurality of operation programs into one, unnecessary operations of the robot are eliminated, and collision between robots is avoided by strictly reflecting the front-back relationship between tasks in the front-back relationship of the robot operation. Therefore, the waiting time of the robot is shorter, and the overall working time is further reduced.
Furthermore, since the robot operation planning unit only considers collision avoidance between the robot itself and a fixed obstacle (excluding other robots), the robot operation planning unit is implemented on the computer network as an independent agent for each robot. This also has the effect of enabling parallel distributed processing.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a robot teaching system according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of an assembly robot cell;
FIG. 3 is a diagram showing an example of work information;
FIG. 4 is a diagram showing a data structure of a search tree according to the embodiment of the present invention;
FIG. 5 is a flowchart of a task search priority search according to the embodiment of the present invention;
FIG. 6 is a diagram showing an example of work / part information;
FIG. 7 is a diagram showing an example of deployment rule information.
FIG. 8 is a diagram showing an example of a robot operation program.
FIG. 9 is a diagram showing an example of expansion rule information specifying a trigger input / output location;
FIG. 10 is a diagram showing an outline of an operation plan for avoiding collision between robots.
FIG. 11 is a diagram showing an example of an operation program modified by an inter-robot collision avoidance operation plan.
FIG. 12 is a diagram showing an initial solution of Conventional Example 1.
FIG. 13 is a diagram showing the principle of collision avoidance between robots in Conventional Example 2.
FIG. 14 is a diagram showing the operation principle of Conventional Example 3;
FIG. 15 is a diagram showing a configuration of a conventional example 4;
[Explanation of symbols]
101: Task input section
102: Task information
103: Condition input section
104: Work / part information
105: Model input unit
106: Geometric model
107: Robot registration unit
108: Robot information
109: Rule registration unit
110: Deployment rule information
111: Task distribution planning unit
112: task processing order planning unit
111a, 112a: evaluation criterion calculation unit
113: Robot Motion Planning Department
113a: Operation program merging unit
113a1: Track deletion unit
113a2: Track adder
114: Operation program
115: Robot collision avoidance operation planning unit
115a: optimization processing unit
115b: pre / post relationship consideration unit
201a to 201c: Robot
202: Belt conveyor
203a to 203d: component supply device
204a to 204c: Tool holder
401: ClosedList of search tree
402: OpenList of search tree
403a to 403f: pointer to parent node of search tree node
601: Part A
602: Parts supply device
603: Coordinate system ΣA fixed to part A
604: Coordinate system $ pf1 fixed to component supply device
605: Coordinate system Σaprch indicating approach position to component A
606: Coordinate system @catch indicating gripping position of component A
607: Coordinate system $ leave indicating the detached position after gripping part A
701: Place task deployment rules
702: Expansion rule of ChangeTool subtask
703: Expansion rule of PickUp subtask

Claims (8)

複数のロボットに対して所定の作業を実施するように前記各ロボットに対して作業分担と作業処理順の組み合わせの中から評価基準を最小あるいは最大にするものを優先的に探索して動作プログラムを生成するロボットの教示システムにおいて、
前記作業を前記複数のロボットに分配するタスク分配計画部と、
前記分配されたタスクの各ロボット内でのタスク処理順序を計画するタスク処理順計画部と、
前記タスク分配計画と前記タスクの処理順序に基づいて各ロボットと障害物との衝突を回避し、かつ、各ロボットの動作開始位置と終了位置をロボット同士が衝突しない領域とする動作プログラムの生成及び動作時間の算出とを行うロボット動作計画部と、
前記動作プログラムの中でロボット間で衝突が発生する軌道がある場合、前記軌道を複数に分割し、前記分割された軌道に対してロボット間での衝突を回避するように前記動作プログラムの変更及び動作時間の算出を行うロボット間衝突回避動作計画部と、
前記ロボット動作計画部の動作時間と前記ロボット間衝突回避動作計画部の動作時間とに基づいて前記評価基準を計算する評価基準計算部とを備えることを特徴とするロボットの教示システム。
In order to perform a predetermined operation on a plurality of robots, the operation program is searched by preferentially searching for the one that minimizes or maximizes the evaluation criterion from the combination of the task allocation and the operation processing order for each robot. In the generated robot teaching system,
A task distribution planning unit that distributes the work to the plurality of robots,
A task processing order planning unit for planning a task processing order in each robot of the distributed tasks,
Generation of an operation program that avoids collision between each robot and an obstacle based on the task distribution plan and the processing order of the tasks, and sets the operation start position and end position of each robot as an area where robots do not collide with each other. A robot operation planning unit for calculating an operation time,
When there is a trajectory in which a collision occurs between robots in the operation program, the operation program is changed so that the trajectory is divided into a plurality of parts, and the divided trajectory is prevented from colliding between robots. An inter-robot collision avoidance operation planning unit for calculating an operation time,
A robot teaching system, comprising: an evaluation criterion calculation unit that calculates the evaluation criterion based on the operation time of the robot operation planning unit and the operation time of the inter-robot collision avoidance operation planning unit.
前記ロボット間衝突回避動作計画部は、複数ロボット全体の動作時間が最短となるように各ロボットの動作計画を変更する最適化処理部を備えることを特徴とする請求項1記載のロボットの教示システム。2. The robot teaching system according to claim 1, wherein the robot collision avoidance operation planning unit includes an optimization processing unit that changes an operation plan of each robot so as to minimize the operation time of the plurality of robots. . 同一ロボットの複数の前記動作プログラムを実行順序にしたがって1つの動作プログラムに併合する動作プログラム併合部を備えることを特徴とする請求項1乃至2記載のロボットの教示システム。The robot teaching system according to claim 1, further comprising an operation program merging unit that merges a plurality of the operation programs of the same robot into one operation program according to an execution order. 前記動作プログラム併合部は、動作プログラムの最終作業点から終了位置までの軌道と次工程動作プログラムの開始位置から開始作業点までの軌道を削除する軌道削除部と、
前記最終作業点から前記開始作業点までの軌道を両動作プログラム間に追加する軌道追加部とを備えることを特徴とする請求項3記載のロボットの教示システム。
The operation program merging unit is a trajectory deletion unit that deletes the trajectory from the final work point to the end position of the operation program and the trajectory from the start position of the next process operation program to the start work point,
The robot teaching system according to claim 3, further comprising: a trajectory adding unit that adds a trajectory from the final working point to the start working point between the two operation programs.
前記タスク処理順計画部は、前記タスク間の先後関係を記述したタスクグラフに基づいて並列実行可能な複数のタスクを1つのタスクセットとし、前記タスクセットを直列に接続したタスクセットリストを生成する機能を備え、
前記タスク分配計画部は、前記タスクセットリストの先頭の前記タスクセットから各作業を実行するロボットの組み合わせを探索する機能を備えることを特徴とする請求項1乃至4記載のロボットの教示システム。
The task processing order planning unit generates a task set list in which a plurality of tasks that can be executed in parallel are set as one task set based on a task graph describing a predecessor / relationship between the tasks, and the task sets are connected in series. With features,
5. The robot teaching system according to claim 1, wherein the task distribution planning unit has a function of searching for a combination of robots that execute each task from the task set at the head of the task set list. 6.
前記タスク間の先後関係をロボット間の動作先後関係に対応付ける展開ルール情報部を備え、
前記ロボット間衝突回避動作計画部は、前記タスク間の先後関係に基づいて動作プログラムを変更する先後関係考慮部を備えることを特徴とする請求項1乃至4記載のロボットの教示システム。
An expansion rule information unit for associating the pre / post relationship between the tasks with the pre / post relationship between the robots,
5. The robot teaching system according to claim 1, wherein the inter-robot collision avoidance operation planning unit includes a back-and-forth relationship consideration unit that changes an operation program based on the back-and-forth relationship between the tasks. 6.
前記タスク分配計画部、前記タスク処理順計画部及び前記ロボット間衝突回避動作計画部は、それぞれ独立して分散処理可能なソフトウェアオブジェクトであることを特徴とする請求項1乃至5記載のロボットの教示システム。6. The robot teaching device according to claim 1, wherein the task distribution planning unit, the task processing order planning unit, and the inter-robot collision avoidance operation planning unit are software objects that can be independently processed in a distributed manner. system. 前記ロボット動作計画部は、各ロボット毎に独立したソフトウェアオブジェクトであることを特徴とする請求項1乃至6記載のロボットの教示システム。7. The robot teaching system according to claim 1, wherein the robot operation planning unit is an independent software object for each robot.
JP2003035461A 2003-02-13 2003-02-13 Teaching system of robot Pending JP2004243461A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003035461A JP2004243461A (en) 2003-02-13 2003-02-13 Teaching system of robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003035461A JP2004243461A (en) 2003-02-13 2003-02-13 Teaching system of robot

Publications (1)

Publication Number Publication Date
JP2004243461A true JP2004243461A (en) 2004-09-02

Family

ID=33020881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003035461A Pending JP2004243461A (en) 2003-02-13 2003-02-13 Teaching system of robot

Country Status (1)

Country Link
JP (1) JP2004243461A (en)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134542A (en) * 2007-11-30 2009-06-18 Jtekt Corp Interference detection device and interference map of machine tool
JP2009282755A (en) * 2008-05-22 2009-12-03 Denso Wave Inc Simulation apparatus
JP2012529104A (en) * 2009-06-05 2012-11-15 ザ・ボーイング・カンパニー Monitoring and control of heterogeneous autonomous work
JP2014219933A (en) * 2013-05-10 2014-11-20 キヤノン株式会社 Article processor, generation method and program
CN104875203A (en) * 2014-02-27 2015-09-02 发那科株式会社 Robot simulation device for generating motion path of robot
EP2923805A3 (en) * 2014-03-26 2015-12-02 Siemens Industry Software Ltd. Object manipulation driven robot offline programming for multiple robot system
US9298863B2 (en) 2014-07-31 2016-03-29 Siemens Industry Software Ltd. Method and apparatus for saving energy and reducing cycle time by using optimal robotic joint configurations
US9457469B2 (en) 2014-08-14 2016-10-04 Siemens Industry Software Ltd. Method and apparatus for automatic and efficient location generation for cooperative motion
US9469029B2 (en) 2014-07-31 2016-10-18 Siemens Industry Software Ltd. Method and apparatus for saving energy and reducing cycle time by optimal ordering of the industrial robotic path
US9649765B2 (en) 2013-03-11 2017-05-16 Siemens Aktiengesellschaft Reducing energy consumption of industrial robots by using new methods for motion path programming
US9701011B2 (en) 2014-05-08 2017-07-11 Siemens Industry Software Ltd. Method for robotic energy saving tool search
DE102017001290A1 (en) 2016-02-19 2017-08-24 Fanuc Corporation Machine learning apparatus, industrial machine cell, manufacturing system, and machine learning method for learning task sharing among a variety of industrial machines
JP2017530873A (en) * 2014-09-02 2017-10-19 カヴォス・バガテル・フェアヴァルツングス・ゲーエムベーハー ウント ツェーオー カーゲーCavos Bagatelle Verwaltungs Gmbh & Co.Kg Robot control data set adjustment system
US9922144B2 (en) 2014-03-26 2018-03-20 Siemens Industry Software Ltd. Energy and cycle time efficiency based method for robot positioning
US9925664B2 (en) 2014-02-27 2018-03-27 Fanuc Corporation Robot simulation device for generation motion path of robot
CN109760042A (en) * 2017-11-10 2019-05-17 株式会社安川电机 Program auxiliary device, robot system and program creating method
JP2019089141A (en) * 2017-11-10 2019-06-13 株式会社安川電機 Teaching device, robot system and teaching method
JP2019206080A (en) * 2017-08-18 2019-12-05 三菱電機株式会社 Robot control device, and robot system using the same
US10545480B2 (en) 2016-11-07 2020-01-28 Lincoln Global, Inc. System and method for manufacturing and control thereof
CN110871433A (en) * 2018-08-31 2020-03-10 发那科株式会社 Teaching device, teaching method, and storage medium
KR20200126537A (en) * 2019-04-30 2020-11-09 고려대학교 산학협력단 Task assigning method and task assigning system for two heterogeneous robots

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134542A (en) * 2007-11-30 2009-06-18 Jtekt Corp Interference detection device and interference map of machine tool
JP2009282755A (en) * 2008-05-22 2009-12-03 Denso Wave Inc Simulation apparatus
JP2012529104A (en) * 2009-06-05 2012-11-15 ザ・ボーイング・カンパニー Monitoring and control of heterogeneous autonomous work
US9649765B2 (en) 2013-03-11 2017-05-16 Siemens Aktiengesellschaft Reducing energy consumption of industrial robots by using new methods for motion path programming
JP2014219933A (en) * 2013-05-10 2014-11-20 キヤノン株式会社 Article processor, generation method and program
US9573273B2 (en) 2014-02-27 2017-02-21 Fanuc Corporation Robot simulation device for generating motion path of robot
CN104875203A (en) * 2014-02-27 2015-09-02 发那科株式会社 Robot simulation device for generating motion path of robot
JP2015160277A (en) * 2014-02-27 2015-09-07 ファナック株式会社 Robot simulation device for creating motion path of robot
US9925664B2 (en) 2014-02-27 2018-03-27 Fanuc Corporation Robot simulation device for generation motion path of robot
EP2923805A3 (en) * 2014-03-26 2015-12-02 Siemens Industry Software Ltd. Object manipulation driven robot offline programming for multiple robot system
US9922144B2 (en) 2014-03-26 2018-03-20 Siemens Industry Software Ltd. Energy and cycle time efficiency based method for robot positioning
US9701011B2 (en) 2014-05-08 2017-07-11 Siemens Industry Software Ltd. Method for robotic energy saving tool search
US9469029B2 (en) 2014-07-31 2016-10-18 Siemens Industry Software Ltd. Method and apparatus for saving energy and reducing cycle time by optimal ordering of the industrial robotic path
US9298863B2 (en) 2014-07-31 2016-03-29 Siemens Industry Software Ltd. Method and apparatus for saving energy and reducing cycle time by using optimal robotic joint configurations
US9457469B2 (en) 2014-08-14 2016-10-04 Siemens Industry Software Ltd. Method and apparatus for automatic and efficient location generation for cooperative motion
JP2017530873A (en) * 2014-09-02 2017-10-19 カヴォス・バガテル・フェアヴァルツングス・ゲーエムベーハー ウント ツェーオー カーゲーCavos Bagatelle Verwaltungs Gmbh & Co.Kg Robot control data set adjustment system
US10493625B2 (en) 2014-09-02 2019-12-03 Cavos Bagatelle Verwaltungs Gmbh & Co. Kg System for generating sets of control data for robots
DE102017001290A1 (en) 2016-02-19 2017-08-24 Fanuc Corporation Machine learning apparatus, industrial machine cell, manufacturing system, and machine learning method for learning task sharing among a variety of industrial machines
US11036191B2 (en) 2016-02-19 2021-06-15 Fanuc Corporation Machine learning device, industrial machine cell, manufacturing system, and machine learning method for learning task sharing among plurality of industrial machines
US10599127B2 (en) 2016-11-07 2020-03-24 Lincoln Global, Inc. System and method for manufacturing and control thereof
US11067965B2 (en) 2016-11-07 2021-07-20 Lincoln Global, Inc. System and method for additive manufacturing and control thereof
US10545480B2 (en) 2016-11-07 2020-01-28 Lincoln Global, Inc. System and method for manufacturing and control thereof
JP2019206080A (en) * 2017-08-18 2019-12-05 三菱電機株式会社 Robot control device, and robot system using the same
JP2019089141A (en) * 2017-11-10 2019-06-13 株式会社安川電機 Teaching device, robot system and teaching method
JP2019084664A (en) * 2017-11-10 2019-06-06 株式会社安川電機 Programming assist device, robot system, and program generating method
CN109760042A (en) * 2017-11-10 2019-05-17 株式会社安川电机 Program auxiliary device, robot system and program creating method
CN109760042B (en) * 2017-11-10 2022-07-01 株式会社安川电机 Programming support device, robot system, and program generation method
JP7095262B2 (en) 2017-11-10 2022-07-05 株式会社安川電機 Programming support device, robot system and program generation method
US11396097B2 (en) * 2017-11-10 2022-07-26 Kabushiki Kaisha Yaskawa Denki Teaching apparatus, robot system, and teaching method
CN110871433A (en) * 2018-08-31 2020-03-10 发那科株式会社 Teaching device, teaching method, and storage medium
KR20200126537A (en) * 2019-04-30 2020-11-09 고려대학교 산학협력단 Task assigning method and task assigning system for two heterogeneous robots
KR102296542B1 (en) 2019-04-30 2021-08-31 고려대학교 산학협력단 Task assigning method and task assigning system for two heterogeneous robots

Similar Documents

Publication Publication Date Title
JP2004243461A (en) Teaching system of robot
Valavanis On the hierarchical modeling analysis and simulation of flexible manufacturing systems with extended Petri nets
Alatartsev et al. Robotic task sequencing problem: A survey
Wolter On the automatic generation of assembly plans
Wang An optimum design for 3-D fixture synthesis in a point set domain
US11635749B2 (en) Optimized factory schedule and layout generation
Behrens et al. A constraint programming approach to simultaneous task allocation and motion scheduling for industrial dual-arm manipulation tasks
JP2001249961A (en) Optimization tool for laying out assembly work cell
JP7246267B2 (en) Assembly planning device, assembly planning method, and assembly planning program
Solis et al. Representation-optimal multi-robot motion planning using conflict-based search
JP2002073130A (en) Planning method for gross motion path of robot and its controller
Qiu et al. A structured adaptive supervisory control methodology for modeling the control of a discrete event manufacturing system
Petiot et al. Contribution to the scheduling of trajectories in robotics
Wong et al. Robotic task sequencing and motion coordination for multiarm systems
JPH1039909A (en) Work scheduling method for plural robots
Weng et al. Quantitative assessment at task-level for performance of robotic configurations and task plans
Lee et al. Automata-based supervisory control logic design for a multi-robot assembly cell
JP2001273022A (en) Control device and control method
Roßgoderer et al. A concept for automatical layout generation
Barral et al. An evolutionary simulated annealing algorithm for optimizing robotic task point ordering
García-Sedano et al. Stamping line optimization using genetic algorithms and virtual 3d line simulation
JP2000339012A (en) Method for planning route for global operation route of robot and its controller
WO2022185759A1 (en) Robot cell system design device, method, and program
WO2022230544A1 (en) Robot equipment design device, method, and program
US20220226997A1 (en) Planning system, robot system, planning method, and non-transitory computer readable storage medium