JP4312481B2 - シミュレーション装置,シミュレーション方法及びシミュレーションプログラム - Google Patents
シミュレーション装置,シミュレーション方法及びシミュレーションプログラム Download PDFInfo
- Publication number
- JP4312481B2 JP4312481B2 JP2003073135A JP2003073135A JP4312481B2 JP 4312481 B2 JP4312481 B2 JP 4312481B2 JP 2003073135 A JP2003073135 A JP 2003073135A JP 2003073135 A JP2003073135 A JP 2003073135A JP 4312481 B2 JP4312481 B2 JP 4312481B2
- Authority
- JP
- Japan
- Prior art keywords
- spreadsheet
- simulation
- time
- robot
- coordinate values
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Description
【発明の属する技術分野】
本発明は、自動化設備で、複数のロボットが同時に動作する際、或いは加工機械及び/または治具が同時に動作する際に、ロボット間の相互干渉、或いは加工機械及び/または治具との間の相互干渉を回避するためのインターロック制御設計を支援するシミュレーション装置,シミュレーション方法及びシミュレーションプログラムに関する。
【0002】
【従来の技術】
シミュレーション装置(シミュレータ)は、コンピュータグラフィックスで作成した3次元仮想空間に、ロボットや加工機械及び/または治具の形状と関節の動作などを定義し、ロボット動作や加工機械及び/または治具をシミュレーションしている。例えば、ロボット操作には、複数のロボット動作をシミュレーションモデルとして作成し、3次元シミュレータ上で動作させるオフラインティーチング手法が用いられている。このオフラインティーチングでは、ロボットハンドや溶接ガンを目標位置へのパスを3次元空間の画面上で指定した上で、逆キネマティクスを解くことでロボット動作をシミュレーションするものである。そして、オフラインティーチングは、実機がないうちにシステム設計を正確に行い、トータルリードタイムを短縮するために広く用いられている。ティーチングデータは、ロボットコントローラで実行できるプログラムコードに変換して、実際のロボットにダウンロードする。
【0003】
また、3次元シミュレータでは、仮想空間に複数台のロボットを置き、各ロボットの動きを運動力学的にシミュレーションする。複数台のロボットの相互干渉をするか否かはロボットの3次元形状モデル同士が重なりあうことで検出できる。この相互干渉検出方法については、IGRIP(Interactive Graphics Robot Instruction Program)など市販のシミュレータの機能として確立されている。
【0004】
【発明が解決しようとする課題】
シミュレータでは、通常、相互干渉がないようにパスを設定し直し、再度シミュレーションを繰り返すことでティーチングを行うが、自動車溶接ラインなどでは、ロボット同士が極めて接近しているため、干渉が避けられない場合がある。新製品の投入では、既設のラインにティーチングデータや、新たなプログラムをシミュレータに追加する必要がある。
【0005】
実機においては、干渉領域に入るとロボットコントローラに接続したライン制御用PLC(プログラマブルコントローラ)を使ってインターロック制御が行われる。インターロック制御により、干渉域に入ろうとする2つのロボットのうち、一方のロボットを一時停止させることで相互干渉を避けることができるが、PLCのサイクルタイムは、一時停止した時間だけ長くなることになる。
【0006】
さらに、インターロック制御を含むライン全体の制御をシミュレータ上で検証するためにはモデルが複雑化して精度を上げることが難しい。例えば、設計上重要な、ロボット数十台におよぶ設備全体のサイクルタイム計算を精度よく一度にシミュレーションすることは、実機で作るのと同じ期間がシミュレーションのモデル作りにかかるため、設計の期間短縮にならない。
【0007】
このため、ラインのシステム設計では、サイクルタイムをあらかじめシミュレーションで検証することが重要となる。ここでのサイクルタイムの検証精度によって、最終的な現場調整期間が左右されることになる。例えば、仮に、シミュレーション精度が悪いため予定以上のサイクルタイムがかかると、ロボットティーチングは現場でやり直しになる。
【0008】
【発明が解決しようとする課題】
ところが、シミュレーションでインターロック制御を行うには、シミュレーション言語でのプログラミングが必要であるが、シミュレーション言語でのプログラミング作成時間は、実機PLCでのインターロック制御のプログラム作成より手間(或いは時間)がかかる。
【0009】
また、シミュレーション精度を高めるためには、干渉しあうロボットや加工機械及び/または治具のすべてを動作させるライン全体のシミュレーションモデルを開発する必要があるが、自動車溶接ライン等のラインではロボットや加工機械及び/または治具が数十台以上になるため、コンピュータ処理速度やシミュレーションプログラムの開発コストが大きすぎて実用にならない。そこで、実際には、大規模設備ではステーション単位での数台以下でロボットの相互干渉チェックをするしかなく、インターロック制御を含むサイクルタイム検証までは簡単にできなかった。
【0010】
そこで、ライン全体のサイクルタイム検証に関して、精度がよく効率的な手段が従来存在しておらず、これを実現できるシミュレーション装置が要望されている。
【0011】
そこで本発明は、上記した背景に鑑みてなされたもので、その目的とするところは、設備全体のロボット相互干渉や加工機械及び/または治具との間の相互干渉を回避するインターロック制御を含むサイクルタイム計算を簡単にかつ正確に行うことで、設備設計の精度を向上させ、かつトータルリードタイムを短縮できるシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供することにある。
【0012】
【課題を解決するための手段】
本発明のシミュレーション装置は、複数のロボットの動作をシミュレートするもので、1台ごとのロボットモデルの単位時間あたりのパーツごとの動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を記録する軌跡情報記録手段と、前記複数のロボットの単位時間あたりの動作領域を覆う空間を表す複数の多面体の、三次元座標値と時刻とを、それぞれのロボットごとのスプレッドシートに入力し、前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、複数の前記スプレッドシート間の同じ時刻ごとに前記三次元座標値をもとに空間的に干渉する多面体を計算により検出する干渉検出手段とを備えるようにした。
【0013】
また、別の解決手段としては、加工機械と治具のうち、少なくとも一方の動作をシミュレートするシミュレーション装置において、前記加工機械と治具のうち、少なくとも一方のモデルの動作単位ごとの動作の動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を記録する軌跡情報記録手段と、前記加工機械と治具のうち、少なくとも一方の動作単位ごとのパーツごとの動作の動作領域を覆う空間を表す複数の多面体の、三次元座標値と時刻とを、それぞれの加工機械または治具ごとのスプレッドシート(表計算アプリケーション)に入力し、前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、複数の前記スプレッドシート間の同じ時刻ごとに前記三次元座標値をもとに空間的に干渉する多面体を計算により検出する干渉検出手段とを備えるようにすることもできる。なお、本明細書において、「A及び/またはB」とは、AとBの少なくとも一方の意味である。
【0014】
本発明によれば、単位時間或いは動作単位あたりの移動軌跡を含む多面体を求め、その多面体の座標値をスプレッドシートに入力する。このとき、例えば、縦軸を前の時刻からその時刻までの領域データを表示し、横軸にロボット等の各パーツの領域データ(多面体が直方体の場合には、対角線上の2つの頂点等により特定できる)を表示する。このようにすると、同一の時間帯に存在する各パーツの存在可能領域がわかる。そこで、各ロボットごと,加工機械,治具ごとにスプレッドシートを作成する。そして、複数シート間の同じ時刻で空間的に干渉する多面体を検出することにより、実機における干渉の有無を容易に検出できる。よって、数十台のロボット設備、或いは加工機械及び/または治具を備えた設備全体の干渉を、簡単かつ高精度で検出できる。
【0015】
本発明のシミュレーション装置では、インターロック制御により停止する時間分、スプレッドシート上の停止させた時間以降の座標値データをそのスプレッドシートの時間軸の下方に移動する座標値データ移動手段を備えることができる。この座標値データ移動手段により、任意のスプレッドシート上の同一時間帯に存在する座標値データを、一括して移動させる。これにより、複数のスプレッドシート間における同一時刻に存在する座標値データを変更させることができる。よって、変更後の複数のスプレッドシート間で、干渉を生じさせないように座標値データ移動手段を動作させることにより、干渉しないロボット等の動作タイミングを決定することができる。このように、スプレッドシート状で、ある行以降の領域データを一括して平行移動させるといった簡単な操作で、複数のロボット間の干渉、或いは加工機械及び/または治具の間の干渉を回避することができる。
【0016】
本発明のシミュレーション装置では、前記スプレッドシート上でインターロック制御による停止時間を含むサイクルタイムを計算するサイクルタイム計算手段を備えることができる。すなわち、上記したある行以降の領域データを一括して平行移動させた場合、その移動した区間は停止していることになり、インターロック制御を行ったことになる。よって、スプレッドシート上における領域データが格納された先頭行から最後行までの時間を求めることにより、インターロック生魚を含むサイクルタイム計算を、精度良く簡単にシミュレーションでき、シミュレーションによる検証期間を短縮でき、トータルリードタイムをも短縮できる。
【0017】
本発明のシミュレーション方法は、複数のロボットについて、シミュレータでシミュレーションモデルを作成するステップと、前記各ロボットについてシミュレータでオフラインティーチングを行うステップと、シミュレーションを実行して求めた前記各ロボットの単位時間あたりのパーツごとの動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を有する動作領域データをファイルに記録するステップと、それぞれのロボットごとのスプレッドシートに前記動作領域データのファイルを読み込むステップと、前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、前記スプレッドシートで同じ時刻ごとにロボットが相互干渉している部分をチェックするステップと、前記スプレッドシートに干渉した部分の座標値を表示するステップとを含むことを特徴とする。
【0018】
また、本発明のシミュレーション方法は、加工機械と治具のうち、少なくとも一方について、シミュレータでシミュレーションモデルを作成するステップと、前記加工機械と治具のうち、少なくとも一方についてシミュレータでオフラインティーチングを行うステップと、シミュレーションを実行して求めた前記加工機械と治具のうち、少なくとも一方の動作単位ごとのパーツごとの動作の動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を有する動作領域データをファイルに記録するステップと、それぞれの加工機械または治具ごとのスプレッドシートに前記動作領域データのファイルを読み込むステップと、前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、前記スプレッドシートで同じ時刻ごとに前記加工機械と治具のうち、少なくとも一方が相互干渉している部分をチェックするステップと、前記スプレッドシートに干渉した部分の座標値を表示するステップを含むようにした。
【0019】
さらに、インターロック制御により停止する時間分、スプレッドシート上の停止させた時間以降の座標値データをスプレッドシートの時間軸の下方に移動するステップと、相互干渉している部分をチェックするステップとを含むことができる。
【0020】
本発明のシミュレーション方法は、さらに、全シートについて相互干渉がなくなったときは、インターロック時間を含むサイクルタイムを求めるステップと、スプレッドシートで求めた干渉結果データをファイルに保存するステップと、シミュレータに干渉結果データを読み込み、インターロック制御をシミュレーション表示するステップを含むことができる。
【0021】
さらに本発明に係るプログラム製品は、複数のロボットについて、シミュレーションを実行して得られた前記複数のロボットの単位時間あたりのパーツごとの動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を有する動作領域データをファイルに記録する処理と、前記動作領域データのファイルを前記複数のロボットごとのスプレッドシートに読み込む処理と、前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、前記スプレッドシートで同じ時刻ごとにロボットが相互干渉している部分をチェックする処理と、前記スプレッドシートに干渉した部分の座標値を表示する処理を実行するプログラム部分を持つようにした。
【0022】
また、別の解決手段としては、加工機械と治具のうち、少なくとも一方について、シミュレーションを実行して得られた前記加工機械と治具のうち、少なくとも一方の動作単位ごとのパーツごとの動作の動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を有する動作領域データをファイルに記録する処理と、前記動作領域データのファイルをそれぞれの加工機械または治具ごとのスプレッドシートに読み込む処理と、前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、前記スプレッドシートで同じ時刻ごとに前記加工機械と治具のうち、少なくとも一方が相互干渉している部分をチェックする処理と、前記スプレッドシートに干渉した部分の座標値を表示する処理を実行するプログラム部分を持つようにしてもよい。
【0023】
【発明の実施の形態】
以下本発明の実施の形態を説明する。図1に示すように、シミュレーション装置1は、軌跡情報記録部11と、干渉検出部12と、座標値データ移動部13と、サイクルタイム計算部14とを備えている。なお、図1の装置はロボットからなるモデルについても適用されるし、加工機械及び/または治具からなるモデルについても適用される。
【0024】
軌跡情報記録部11は、複数のロボットの1台ごとモデルの一定時間動作した軌跡の形状を表す複数の多面体の座標値とシミュレーション時刻を記録するものである。干渉検出部12は、複数のロボットや加工機械及び/または治具の軌跡の形状を表す複数の多面体の三次元座標値と時刻を、それぞれスプレッドシート(表計算アプリケーション)に入力し、複数シート間の同じ時刻で空間的に干渉する多面体を計算により検出するものである。座標値データ移動部13は、各ロボットや加工機械及び/または治具がインターロック制御により停止する時間分、スプレッドシート上の座標値データを移動させるものである。サイクルタイム計算部14は、スプレッドシート上でインターロック制御による停止時間を含むサイクルタイムを計算するものである。
【0025】
図1において、シミュレーション装置1は、軌跡情報記録部11に、1台ずつのロボットや加工機械及び/または治具の形状,座標値,ティーチングプログラム並びにパラメータを読み込み、ティーチングした動作のシミュレーションを実行する。このとき、ロボット形状の動作領域の座標値を動作領域データとしてファイルに書き込む。これをラインのロボット台数分、或いは加工機械及び/または治具の数分繰り返す。
【0026】
次に、干渉検出部12は、動作領域データをスプレッドシートに読み込み、スプレッドシート上で座標位置の干渉チェックを計算する。座標値データ移動部13は、スプレッドシート上で、インターロック制御による遅れ時間を追加し、全部のロボット間で相互干渉、或いは加工機械及び/または治具との間の干渉がなくなるように操作し、干渉がなくなれば、操作を終える。そして、サイクルタイム計算部14は、ライン全体のインターロック時間を入れたサイクルタイムを求める。
【0027】
図2は、図1のシミュレーション装置1を具体的に示すブロック図である。図2ではシミュレーション装置1は、シミュレータ21と、干渉チェックプログラム22と、スプレッドシート23と、干渉チェック・インターロック時間追加プログラム24と、各種記憶部とからなる。
【0028】
図3は、実機ロボットのインターロック制御の構成を示す図であり、ここでは制御用PLC31が2つの実機ロボットRBT1,RBT2を制御する図を示している。すなわち、例えば、実機ロボットRBT1が、定義された相互干渉領域IRの座標値内に入ると、制御用PLC31が実機ロボットRBT2を停止させる。ロボットRBT1が相互干渉領域IRから出ると、実機ロボットRBT2の動作を再開する。逆に、実機ロボットRBT2が相互干渉領域に入るとロボットRBT1を停止する。そして、制御用PLC31は、I/Oを通じて干渉域入力信号とロボット停止信号によって上記したインターロック制御を行う。
【0029】
制御用PLC31は、このため、時間を設計時に考慮することはせず、実機ロボットで動作させてみないと相互干渉を避けるための待ち時間がどのくらいになるのか不明である。
【0030】
図4は、制御用PLC31によるインターロック制御を行わない場合にロボット同士が衝突する様子を示している。すなわち、ロボットRBT1と、ロボットRBT2との干渉の様子を示しており、干渉域内において衝突が生じた様子を示してある。
【0031】
図5は、制御用PLC31によるインターロック制御を行い、インターロック待ちにより、サイクルタイムが長くなった様子を示している。すなわち、図5から明らかなように、インターロック制御をした場合のロボットRBT1と、ロボットRBT2との干渉の様子を示しており、干渉域外ではもちろん干渉域内においても衝突は生じないが、サイクルタイムは、インターロック待ちをしている時間分だけ、図4に示したインターロック制御を行わない場合に比べて増加している。
【0032】
ところで、シミュレータ上で、ライン全体について干渉を避ける動きをシミュレーションすることは、実機を作るのと同等の費用と手間がかかる上、シミュレーション用に特別のプログラムを作るコストが増えるため、設計検証用としては実用的ではない。そこで、本実施の形態では、以下に示すアルゴリズムを実行することにより、インターロック制御を行うに際し、どちらのロボットをどのタイミングで一時停止するかなどを決定し、正常に動作する場合のシステム全体のサイクルタイムを求めるようにした。具体的には、図6,図7に一連の示すフローチャートを実行する。
【0033】
まず、各ロボットについて通常のシミュレーションを実行し、ロボットの動作に伴う移動軌跡(動作領域)を特定する。すなわち、シミュレータでシミュレーションモデルを作り(ST101)、シミュレータでオフラインティーチングを行い(ST102)、シミュレーションを実行し、ロボットの動作領域データをファイルに記録する(ST103)。そして、ステップ101〜103の処理を、必要なロボット分について繰り返す(ST104)。
【0034】
次いで、スプレッドシートにステップ103で取得した動作領域データファイルを読み込み(ST105)、スプレッドシートのマクロでロボットが相互干渉している部分をチェックし(ST106)、スプレッドシートに干渉した部分の座標値を表示する(ST107)。
【0035】
干渉したロボットのパスを修正できるか否かを判断し(ST108)、できない場合には処理をステップ102に戻し、上記したステップ102〜107の処理を実行する。また、修正可能な場合には、スプレッドシートでインターロック制御による停止時間を挿入し(ST109)、ロボットが相互干渉している部分をチェックする(ST110)。
【0036】
そして、全シートについて相互干渉がなくなったか否かを判断し(ST111)、干渉が生じたシートが残っている場合には、ステップ109に戻り、上記したステップ109,110の処理を実行し、全シート相互干渉がなくなったときは、インターロック時間を含むサイクルタイムを求め(ST112)、スプレッドシートで求めた干渉結果データをファイルに保存し(ST113)、シミュレータに、干渉結果データを読み込み、インターロック制御をシミュレーション表示し(ST114)、処理を終了する。
【0037】
以下、上記した各ステップにおける処理を説明する。まず、ステップ101のシミュレータでのシミュレーションモデルの作成並びにステップ102のシミュレータでのオフラインティーチングは以下のように行われる。
【0038】
(1)仮想空間上でロボットを組み立てる。具体的には、パーツリストから、ボディ,肩,関節,腕,手首等のパーツを呼び出し、座標値を図面どおりに合わせて、運動方向をもったデバイスとして定義する。
(2)関節の動作範囲パラメータ,速度パラメータ,度範囲パラメータ等を設定する。
(3)ロボットを動作させる位置座標を定義する。
(4)シミュレーション言語で、ロボットの位置座標に到達する順番をプログラムする。
(5)シミュレーション実行と、(3),(4)の修正により、シミュレータ画面上で、オフラインティーチングを実行する。
【0039】
なお、実機ティーチングデータを利用する手順は以下のとおりである。
(1)実機ティーチングデータを選択する。
(2)必要な機種のトランスレータを選択する。
(3)ロボットの各軸のパルス分解能とゼロ位置を設定する。
(4)シミュレータの実機ティーチングデータをアップロードし、シミュレーションプログラムに変換する。
(5)シミュレーションを実行する。
【0040】
また、ステップ103のロボットの動作領域データのファイルへの記録は以下のように行われる。すなわち、まず、動作領域計算に際しては、図8に示すように、対象ロボットRBT1台ごとに、シミュレータを使って、単位時間あたりの動作領域を、直方体によって代表させて算出し、その座標値を保存する。
【0041】
(1)動作領域を計算するロボットを選択し、シミュレータに読み込む。
(2)単位時間Tあたりのロボット動作領域をシミュレーションより求める。
(3)ロボットのパーツ1,2,……に対する動作領域を覆う最小の直方体を計算する。必要なパーツすべてについてそれぞれ直方体を計算する。
(4)直方体の両端の2座標を動作領域ファイルへ保存する。なお、各データファイルはロボットの場合、作動領域データファイル,領域Deviceファイル,領域Partファイルに保存される。
【0042】
ここでは、説明のため、動作領域を覆う最小の直方体としているが、精度をあげるために動作領域を覆う多面体としても同じである。単位時間Tは、求める精度によって変更することができる。単位時間を小さくとると精度は向上するが、動作領域データの量は増加する。
【0043】
ステップ105の動作領域データファイルのスプレッドシートへの読み込みは以下のようにして行われる。まず、スプレッドシートから、読み込む動作領域データファイルを選択する。次に、ロボット1台につき、スプレッドシート上に1シートを追加し、読み出したデータが表示される。これにより、ロボットの台数だけシートが作成される。
【0044】
本発明はロボット1台について1シートが作成され、シートの所定セルのデータを変更するようにしているので、ロボットの台数が増えても、同じ操作で、干渉を防ぐことができる。図9に示すように、動作領域データは、
縦軸:前の時刻からその時刻までの領域データを表示
(時刻はA列に表示)
横軸:ロボットの各パーツの領域データ(直方体の2頂点の座標)を表示
(頂点1のX,Y,Z座標),(頂点2のX,Y,Z座標)
で表している。
【0045】
そこで、ステップ106のマクロでのロボット相互干渉している部分のチェックは、例えば、ユーザが図10(a)に示すダイアログボックスの“CheckCollision”ボタンをクリックすることで行われる。
【0046】
ステップ107の干渉した部分の座標値の表示は、図11に示すように、強調表示される(強調表示個所を符号Iで示す)。ここでは、一度に2台のロボット間のある時刻の指定が行われる。
【0047】
さらにクリックすると、次の時刻の干渉チェックを行う。最後の時刻までチェックするとチェック完了となる。領域データが3ロボット分以上ある場合、あるロボット間のチェックが完了すると別のロボット間のチェックを開始する。
【0048】
チェック結果データは、各シートのデータをそれぞれチェック結果ファイルに保存される。このときのファイル名は、例えば<領域ファイル名>+“_Rst.csv“で自動割り付けされるようにできる。なお、保存先フォルダの指定は、図10(a)のダイアログの“Reference”をクリックすることで、図10(b)に示すダイアログを開き、これより選択することもできる。
【0049】
ステップ109のスプレッドシートでのインターロック制御による停止時間の挿入(インターロック待ちを発生)は、スプレッドシートのセル操作により行われる。すなわち、一度メインダイアログを終了し、図12に示すようにインターロック待ちを発生させたい時刻以降のデータを待ち時間分下方へ移動させる(図12において、白抜き矢印で示す)。
【0050】
ステップ110のロボットが相互干渉している部分のチェックは、再び図10(a)に示したダイアログを表示させ、“Check Collision”ボタンをクリックする。また、適宜メニューに用意された“Play CheckResult”ボタンをクリックすることで、ロボット及び干渉チェック結果ファイルを選択して、シミュレータで干渉結果データを再生することができる。ステップ112では、インターロック待ちを挿入されている場合に、時刻データの再割付が行われる。
【0051】
ステップ113のスプレッドシートで求めた干渉結果データのファイルへの保存は、図10(a)のダイアログの“Save Resultを”クリックし保存先フォルダを指定することで行われる。全てのシートのデータは、同時にファイルに保存する。
ステップ114の干渉結果データの読み込み,インターロック制御のシミュレーション表示は以下のように行われる。
【0052】
(1)シミュレータで、干渉チェック結果データを再生するロボットを選択して読み込む。
(2)で選択したロボットに対応する干渉チェック結果ファイルを選択して読み込む。
(3)2台目のロボットについて(1),(2)を行う。
(4)スプレッドシートで行った干渉チェックの結果ファイルを読み込む。インターロック待ちの時間は、シミュレータ上のロボットを停止するシミュレーション表示を行う。
【0053】
表1に、干渉チェックプログラムの機能を示す。
【0054】
【表1】
【0055】
干渉チェックプログラムのロジックは、以下の通りである。チェックするセルに記述されている直方体頂点座標データをそれぞれ、ロボットRBT1(xA1,yA1,zA1),(xA2,yA2,zA2)、ロボットRBT2(xB1,yB1,zB1),(xB2,yB2,zB2)とする。2つのロボットが干渉している場合のパターンとして、x軸のみで考えると、図13(a),(b)に示すようになる。このパターンがX,Y,Zの全ての軸で成り立つ場合、2つの直方体が干渉していると判断することができる。よって、同一の時刻、つまりスプレッドにおいて、同一行に存在するセルに格納された領域データに基づき、X,Y,Zの全てで上記の条件を満たす箇所があるか否かを判断することにより、干渉が生じているか否かを判断することができる。
【0056】
1回のチェックコマンド実行で、あるロボット間のある時刻のチェックを行う。また、あるロボット間で全ての時刻の干渉チェックが完了すると、別のロボット間のチェックを行い、全てのロボット間のチェックが完了した時点で、チェック終了とする。
【0057】
次に、本発明の他の実施の形態を説明する。本実施の形態では、生産ラインとして、一般の加工機械と治具を組み合わせた自動機ラインのインターロックを対象としている。
【0058】
ロボットに関しては、既に説明したように、コントローラ側で干渉域座標値を定義して、干渉域に入るか出るかの検出によってインターロック制御のロジックを制御用PLCで実現する。ところが、一般の加工機械と治具では、コントローラ側に干渉域定義ができる機能は通常はない。したがって、ロボット動作パスの随所でインターロック制御を挿入することが可能となるが、一般の加工機械と治具では、決まった位置でしか挿入できない。よって、リミットスイッチなどのセンサの位置で決まってくる。
【0059】
ロボットでは、ティーチングプログラムを利用してシミュレーションを実行できるが、加工機械と治具を組み合わせた自動機ラインでは、ティーチングプログラムはない。そこで、ロボットにおける実施の形態の手順に以下に示すような追加が必要になる。
【0060】
(1)シミュレーション対象の加工機,治具のシミュレーションプログラムを作成する。
(2)次に、加工機の動作を領域記録する時に、加工機,治具に関しては一連の動作で、PLC制御単位に細分化して保存する。
【0061】
例えば、ドリル穴あけの一連の作動において、ドリル前進→ドリル下降→ドリル上昇→ドリル後退というように検出できる動作単位ごとに分割してシミュレーションし、ファイルに保存する。ドリル形状を直方体とみなすのは先に説明した実施の形態と同じである。ここで、検出できる動作単位とは、例えば、センサのON/OFF情報やモーションコントロールの完了信号など、動作を区切ることができる単位である。
【0062】
(3)動作単位ごとに分割シミュレーションした位置データは直方体の領域データとみなして、同一のスプレッドシートに読み出す。動作タイミングの順に順次上から追加表示していく。
(4)制約条件として、干渉チェック時、分割読み出ししたシートにおいては、分割単位でしかデータ移動できない。
【0063】
このような手順を追加することで、一般の加工機と治具を持つ生産ラインに対して動作時間の算出がスプレッドシートを用いてできる。
【0064】
もし、加工機,治具に対して随所にインターロック制御を追加すると、例えばドリル下降中にインターロック制御用のセンサを追加することになる。機種追加時にインターロック制御タイミングを追加する場合、このためのセンサを追加することになる。
【0065】
図14,図15は、加工機,治具についてのインターロック制御による手順を追加したフローチャートを示している。まず、3次元シミュレータで加工機,治具のシミュレーションモデルを作成し(ST201)、シミュレーションモデル上でセンサなど動作の区切りとなる位置情報を検出するプログラムを作成し(ST202)、シミュレーションを実行し加工機,治具の作動領域データをファイルに記録する(ST203)。そして、ステップ201〜203の処理を、必要な加工機,治具分について繰り返す(ST204)。
【0066】
次いで、スプレッドシートに作動領域データファイルを読み込み(ST205)、スプレッドシートのマクロで加工機,治具が相互干渉している部分をチェックし(ST206)、スプレッドシートに干渉した部分の座標値を表示する(ST207)。
【0067】
そして、干渉した加工機・治具のパスを修正できるか否かを判断し(ST208)、修正できない場合にはステップ102に戻り、修正できるようになるまでステップ202〜207の処理を実行する。
【0068】
加工機,治具のパスを修正できる場合には、スプレッドシートでインターロック制御による停止時間を挿入し(ST209)、加工機,治具が相互干渉している部分をチェックする(ST210)。全シート相互干渉がなくなっていないときには、再度処理をステップ209に戻しステップ209,ステップ210の処理を実行する(ST211)。そして、全シート相互干渉がなくなったときは、インターロック時間を含むサイクルタイムを求め(ST212)、スプレッドシートで求めた干渉結果データをファイルに保存し(ST213)、処理を終了する。
【0069】
【発明の効果】
本発明では、自動化設備で、複数のロボットが同時に動作する際、或いは加工機械及び/または治具が同時に動作する際に、ロボット間の相互干渉、或いは加工機械及び/または治具との間の相互干渉を回避することができる。
【図面の簡単な説明】
【図1】本発明のシミュレーション装置の概要を示す機能ブロック図である。
【図2】図1のシミュレーション装置を具体的に示すブロック図である。
【図3】制御装置と、これによりインターロック制御される実機ロボットを示す図である。
【図4】制御用PLCによるインターロック制御を行わない場合のロボット同士が衝突する様子を示す図である。
【図5】制御用PLCのインターロック制御を行いインターロック待ちによりサイクルタイムが長くなった様子を示す図である。
【図6】本発明のシミュレーション装置における処理の前半を示すフローチャートである。
【図7】本発明のシミュレーション装置における処理の後半を示すフローチャートである。
【図8】シミュレーション処理における動作領域計算に際しての説明図である。
【図9】スプレッドシード上の動作領域データを示す図である。
【図10】ユーザが処理するためのダイアログを示す図である。
【図11】スプレッドシード上の動作領域データのうち、干渉があるために強調表示された様子を示す図である。
【図12】スプレッドシード上でインターロック待ちを発生させたい時刻以降のデータを待ち時間分下方へ移動させる様子を示す図である。
【図13】干渉チェックプログラムのロジックの説明図である。
【図14】本発明のシミュレーション装置における処理の前半を示すフローチャートである。
【図15】本発明のシミュレーション装置における処理の後半を示すフローチャートである。
【符号の説明】
1 シミュレーション装置
11 軌跡情報記録部
12 干渉検出部
13 座標値データ移動部
14 サイクルタイム計算部
21 シミュレータ
22 干渉チェックプログラム
23 スプレッドシート
24 干渉チェック・インターロック時間追加プログラム
31 制御用PLC
IR 相互干渉領域
RBT1,RBT2 ロボット
Claims (10)
- 複数のロボットの動作をシミュレートするシミュレーション装置において、
1台ごとのロボットモデルの単位時間あたりの動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を記録する軌跡情報記録手段と、
前記複数のロボットの単位時間あたりのパーツごとの動作領域を覆う空間を表す複数の多面体の、三次元座標値と時刻とを、それぞれのロボットごとのスプレッドシートに入力し、そのスプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、複数の前記スプレッドシート間の同じ時刻ごとに前記三次元座標値をもとに空間的に干渉する多面体を計算により検出する干渉検出手段とを備えたことを特徴とするシミュレーション装置。 - 加工機械と治具のうち、少なくとも一方の動作をシミュレートするシミュレーション装置において、
前記加工機械と治具のうち、少なくとも一方のモデルの動作単位ごとの動作の動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を記録する軌跡情報記録手段と、
前記加工機械と治具のうち、少なくとも一方の動作単位ごとのパーツごとの動作の動作領域を覆う空間を表す複数の多面体の、三次元座標値と時刻とを、それぞれの加工機械または治具ごとのスプレッドシートに入力し、そのスプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、複数の前記スプレッドシート間の同じ時刻ごとに前記三次元座標値をもとに空間的に干渉する多面体を計算により検出する干渉検出手段とを備えたことを特徴とするシミュレーション装置。 - インターロック制御により停止する時間分、スプレッドシート上の停止させた時間以降の座標値データをそのスプレッドシートの時間軸の下方に移動する座標値データ移動手段を備えたことを特徴とする請求項1または2に記載のシミュレーション装置。
- 前記スプレッドシート上でインターロック制御による停止時間を含むサイクルタイムを計算するサイクルタイム計算手段を備えたことを特徴とする請求項1から3の何れか1項に記載のシミュレーション装置。
- 複数のロボットについて、シミュレータでシミュレーションモデルを作成するステップと、
前記各ロボットについてシミュレータでオフラインティーチングを行うステップと、
シミュレーションを実行して求めた前記各ロボットの単位時間あたりのパーツごとの動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を有する動作領域データをファイルに記録するステップと、
それぞれのロボットごとのスプレッドシートに前記動作領域データのファイルを読み込むステップと、
前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、前記スプレッドシートで同じ時刻ごとにロボットが相互干渉している部分をチェックするステップと、
前記スプレッドシートに干渉した部分の座標値を表示するステップとを含むことを特徴とするシミュレーション方法。 - 加工機械と治具のうち、少なくとも一方について、シミュレータでシミュレーションモデルを作成するステップと、
前記加工機械と治具のうち、少なくとも一方についてシミュレータでオフラインティーチングを行うステップと、
シミュレーションを実行して求めた前記加工機械と治具のうち、少なくとも一方の動作単位ごとのパーツごとの動作の動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を有する動作領域データをファイルに記録するステップと、
それぞれの加工機械または治具ごとのスプレッドシートに前記動作領域データのファイルを読み込むステップと、
前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、前記スプレッドシートで同じ時刻ごとに前記加工機械と治具のうち、少なくとも一方が相互干渉している部分をチェックするステップと、
前記スプレッドシートに干渉した部分の座標値を表示するステップとを含むことを特徴とするシミュレーション方法。 - インターロック制御により停止する時間分、スプレッドシート上の停止させた時間以降の座標値データをスプレッドシートの時間軸の下方に移動するステップと、
相互干渉している部分をチェックするステップとを含むことを特徴とする請求項5または6に記載のシミュレーション方法。 - 全シートについて相互干渉がなくなった場合に、インターロック時間を含むサイクルタイムを求めるステップと、
スプレッドシートで求めた干渉結果データをファイルに保存するステップと、
シミュレータに干渉結果データを読み込み、インターロック制御をシミュレーション表示するステップとを含むことを特徴とする請求項5から7の何れか1項に記載のシミュレーション方法。 - 複数のロボットについて、シミュレーションを実行して得られた前記複数のロボットの単位時間あたりのパーツごとの動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を有する動作領域データをファイルに記録する処理と、
前記動作領域データのファイルを前記複数のロボットごとのスプレッドシートに読み込む処理と、
前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、前記スプレッドシートで同じ時刻ごとにロボットが相互干渉している部分をチェックする処理と、
前記スプレッドシートに干渉した部分の座標値を表示する処理を実行するプログラム部分を持つことを特徴とするプログラム製品。 - 加工機械と治具のうち、少なくとも一方について、シミュレーションを実行して得られた前記加工機械と治具のうち、少なくとも一方の動作単位ごとのパーツごとの動作の動作領域を覆う空間を表す複数の多面体の座標値とシミュレーション時刻を有する動作領域データをファイルに記録する処理と、
前記動作領域データのファイルをそれぞれの加工機械または治具ごとのスプレッドシートに読み込む処理と、
前記スプレッドシートは、同じ時刻における前記パーツごとに対応する三次元座標値を一列に配列した構成をとり、前記スプレッドシートで同じ時刻ごとに前記加工機械と治具のうち、少なくとも一方が相互干渉している部分をチェックする処理と、
前記スプレッドシートに干渉した部分の座標値を表示する処理を実行するプログラム部分を持つことを特徴とするプログラム製品。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003073135A JP4312481B2 (ja) | 2003-03-18 | 2003-03-18 | シミュレーション装置,シミュレーション方法及びシミュレーションプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003073135A JP4312481B2 (ja) | 2003-03-18 | 2003-03-18 | シミュレーション装置,シミュレーション方法及びシミュレーションプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004280635A JP2004280635A (ja) | 2004-10-07 |
JP4312481B2 true JP4312481B2 (ja) | 2009-08-12 |
Family
ID=33289106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003073135A Expired - Fee Related JP4312481B2 (ja) | 2003-03-18 | 2003-03-18 | シミュレーション装置,シミュレーション方法及びシミュレーションプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4312481B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104345731A (zh) * | 2013-08-01 | 2015-02-11 | 常州超感官智能装备有限公司 | 一种户外表演机器人防碰系统 |
KR101782317B1 (ko) | 2016-06-10 | 2017-09-27 | (주)엠아이테크 | 3차원 스캐너를 이용한 로봇 캘리브레이션 장치 및 이를 이용한 로봇 캘리브레이션 방법 |
CN108326859A (zh) * | 2018-05-07 | 2018-07-27 | 广东工业大学 | 一种有效避免机械臂在工作过程中发生干涉的方法 |
CN114378840A (zh) * | 2021-12-20 | 2022-04-22 | 西安北方华创微电子装备有限公司 | 半导体工艺设备中传输系统的控制方法和半导体工艺设备 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009119589A (ja) * | 2007-11-19 | 2009-06-04 | Yaskawa Electric Corp | ロボットシミュレータ |
JP2010115723A (ja) * | 2008-11-11 | 2010-05-27 | Seiko Epson Corp | ロボット及びロボットシステム |
JP5435567B2 (ja) * | 2009-12-21 | 2014-03-05 | 独立行政法人産業技術総合研究所 | 生活支援ロボットアームの操作トレーニング装置 |
JP5144785B2 (ja) | 2011-04-18 | 2013-02-13 | ファナック株式会社 | ロボットの着目部位と周辺物との干渉を予測する方法及び装置 |
JP6026484B2 (ja) * | 2014-10-31 | 2016-11-16 | ファナック株式会社 | 工作機械の周辺機器の自立制御を可能とするシステム |
JP6743453B2 (ja) * | 2016-03-30 | 2020-08-19 | セイコーエプソン株式会社 | ロボット制御装置、ロボットおよびシミュレーション装置 |
US10384347B2 (en) | 2016-03-25 | 2019-08-20 | Seiko Epson Corporation | Robot control device, robot, and simulation device |
DE102016120763B4 (de) | 2016-10-31 | 2019-03-14 | Pilz Gmbh & Co. Kg | Verfahren zur kollisionsfreien Bewegungsplanung |
CN108656090A (zh) * | 2018-07-11 | 2018-10-16 | 南通理工学院 | 一种机械手组件及控制该机械手组件的控制单元 |
CN113076631A (zh) * | 2021-03-22 | 2021-07-06 | 广东博智林机器人有限公司 | 一种机器人模拟器生成方法、机器人模型仿真方法及装置 |
JP7158776B1 (ja) * | 2021-08-03 | 2022-10-24 | 眞鍋造機株式会社 | 製造委託支援装置および製造委託支援プログラム |
WO2024116285A1 (ja) * | 2022-11-29 | 2024-06-06 | ファナック株式会社 | ロボットシステムのシミュレーション装置 |
CN118003330B (zh) * | 2024-03-20 | 2024-07-05 | 朗宇芯科技(佛山)有限公司 | 一种联机模式下的机械手防撞系统 |
-
2003
- 2003-03-18 JP JP2003073135A patent/JP4312481B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104345731A (zh) * | 2013-08-01 | 2015-02-11 | 常州超感官智能装备有限公司 | 一种户外表演机器人防碰系统 |
KR101782317B1 (ko) | 2016-06-10 | 2017-09-27 | (주)엠아이테크 | 3차원 스캐너를 이용한 로봇 캘리브레이션 장치 및 이를 이용한 로봇 캘리브레이션 방법 |
CN108326859A (zh) * | 2018-05-07 | 2018-07-27 | 广东工业大学 | 一种有效避免机械臂在工作过程中发生干涉的方法 |
CN114378840A (zh) * | 2021-12-20 | 2022-04-22 | 西安北方华创微电子装备有限公司 | 半导体工艺设备中传输系统的控制方法和半导体工艺设备 |
CN114378840B (zh) * | 2021-12-20 | 2024-06-14 | 西安北方华创微电子装备有限公司 | 半导体工艺设备中传输系统的控制方法和半导体工艺设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2004280635A (ja) | 2004-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4312481B2 (ja) | シミュレーション装置,シミュレーション方法及びシミュレーションプログラム | |
JP4153528B2 (ja) | ロボットシミュレーションのための装置、プログラム、記録媒体及び方法 | |
CN106873550B (zh) | 模拟装置以及模拟方法 | |
US7945349B2 (en) | Method and a system for facilitating calibration of an off-line programmed robot cell | |
JP3946753B2 (ja) | ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置 | |
EP1310844B1 (en) | Simulation device | |
US20110054685A1 (en) | Robot off-line teaching method | |
JP2001105359A (ja) | ロボットシステム用グラフィック表示装置 | |
US7174225B2 (en) | Method and system for simulating processing of a workpiece with a machine tool | |
JP2009510574A (ja) | 工作機械又は生産機械の制御挙動ないし機械挙動のシミュレーション方法 | |
JP2017097426A (ja) | シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム | |
JP7052250B2 (ja) | 情報処理装置、情報処理方法、および情報処理プログラム | |
US20030090490A1 (en) | Simulation device | |
JP6392817B2 (ja) | シミュレーション装置 | |
Bulej et al. | Simulation of manipulation task using iRVision aided robot control in Fanuc RoboGuide software | |
JP2007136671A (ja) | ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置 | |
JP2004151976A (ja) | シミュレーション装置 | |
US11656753B2 (en) | Information processing device and method displaying at least two apparatuses for virtually checking interference | |
Sekala et al. | Modelling and simulation of robotic production systems | |
CN113681574A (zh) | 一种面向钣金折弯的机器人三维可视化仿真与离线编程系统 | |
CN104965486B (zh) | 一种非标机器人建模方法 | |
CN118076953A (zh) | 一种修改运动副参数的方法、装置及产线系统 | |
Pollák et al. | PLC Control of a 2-Axis Robotic Arm in a Virtual Simulation Environment | |
JP2001100834A (ja) | ロボット教示データの作成装置およびその方法 | |
JP2004326732A (ja) | シミュレーション用ロボットの誤差パラメータ同定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060223 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080704 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080710 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080908 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090130 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090507 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090513 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120522 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130522 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140522 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |