JP4210065B2 - 最適位置決定支援方法、最適位置決定支援装置及びロボットシステム - Google Patents
最適位置決定支援方法、最適位置決定支援装置及びロボットシステム Download PDFInfo
- Publication number
- JP4210065B2 JP4210065B2 JP2002061424A JP2002061424A JP4210065B2 JP 4210065 B2 JP4210065 B2 JP 4210065B2 JP 2002061424 A JP2002061424 A JP 2002061424A JP 2002061424 A JP2002061424 A JP 2002061424A JP 4210065 B2 JP4210065 B2 JP 4210065B2
- Authority
- JP
- Japan
- Prior art keywords
- simulation
- movement
- optimum
- simulated
- work
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Description
【発明の属する技術分野】
本発明は、多関節ロボットのロボットアームの移動時間を短くすることのできる、ロボットアームの最適な動作位置の決定を支援する技術に関する。
【0002】
【従来の技術】
従来、ロボットの動作位置を決定する方法としては、操作者がロボットを手動で動かして動作位置を教示していくというティーチングという方法がある。そして、ティーチングによって指定された動作位置から次の動作位置にロボットアームを順次、移動させることでロボット動作を実現している。
【0003】
【発明が解決しようとする課題】
ロボットアームの移動時間は、動作位置間の移動距離が短ければ短くなるという原則はあるものの、一慨には言えない部分もあることから、ロボット作業を効率化できる動作位置の決定は勘と経験によるものであった。
【0004】
例えば、水平多関節ロボットにおいては、複数のアームを関節軸を中心に回転して水平方向の移動を実現しているという構造的な機構から、水平方向に同じ距離を移動するにしても、その移動位置により移動に必要な時間が大きく異なってくる。以下、この点について図を参照して説明する。
【0005】
図19は第1アームと第2アームを有する水平多関節ロボットのロボットアーム先端を点Aから点Bに移動するときの各アームの回転角度の説明図、図20は同様の水平多関節ロボットのロボットアーム先端を点Cから点Dに移動するときの各アームの回転角度の説明図である。なお、図19及び図20において点Aと点B間の距離と、点Cと点D間の距離とは等しくなっている。
【0006】
図19において、ロボットアームが点Aから点Bに移動する際に、第1アームは角度θ1、第2アームは角度(θ3−θ2)、反時計方向に回転する。図20において、ロボットアームが点Cから点Dに移動する際に、第1アームは角度θ4、第2アームは角度(θ5−θ6)、時計方向に回転する。このように、ロボットアームが同じ距離を移動するのであっても、各アームの移動に必要な回転角度は異なってくることから、移動に必要な時間も当然のことながら異なってくる。
【0007】
図21は図19及び図20の第1アームが415mm、第2アームが235mmであるときの水平多関節ロボットのロボットアーム先端を、X軸方向に30cm、1往復した時の移動時間を示す棒グラフ図である。図22はこの往復動作を行う水平多関節ロボットの模式図である。図21のグラフは、1往復動作の中央点(図19で説明すると、点Aと点Bの中間点Mに相当)のXY座標をXY平面上で特定し、その座標(X,Y)に、その位置を中央点とする1往復動作の所要時間を縦棒で示したものである。
【0008】
このグラフからも判るように、水平多関節ロボットを背面からみた左エリア(図22参照)のうちX座標−400mm近辺でX軸方向に30cm、1往復する時間は、同右エリア(図22参照)のうちX座標+250mm近辺で同動作をさせた場合よりも約2倍の時間を必要としている。従って、ユーザがロボットに課した作業が、作業対象物表面をX軸方向に30cm、1往復するという作業であれば、その作業中心位置がたまたまロボット左エリア(X座標−400mm近辺)となるように作業対象物を配置した場合、その作業時間が大幅に長くなってしまうことになる。
【0009】
本発明は上記の課題を解決するためになされたもので、ロボットアームの移動時間を短くすることのできる最適な動作位置の決定を支援する最適位置決定支援方法、最適位置決定支援装置及びロボットシステムを得ることを目的とする。
【0010】
【課題を解決するための手段】
(1)本発明の一つの態様に係る最適位置決定支援方法は、水平多関節ロボットの動作位置の配置決定により、作業対象物の最適配置決定を支援する方法であって、水平多関節ロボットのロボットアームの移動経路を特定する第1固定位置、シミュレート位置及び第2固定位置を指定し、シミュレート位置を含むシミュレート範囲を指定し、第1固定位置、シミュレート位置及び第2固定位置をこの順で通過する移動経路に従ってロボットを擬似的に動作させるシミュレーションを、シミュレート位置をシミュレート範囲内で順次変えて作成した複数の移動経路それぞれについて行い、各シミュレート位置のうち、ロボットアームの移動時間が最も短くなる移動経路に対応する最適位置のシミュレーション結果を少なくとも出力することによって、作業対象物の最適位置を決定するものである。
【0011】
(2)本発明の他の態様に係る最適位置決定支援方法は、上記(1)において、各シミュレート位置には、水平多関節ロボットの作業対象物の配置候補位置が指定されるものである。
【0012】
(3)本発明の他の態様に係る最適位置決定支援方法は、上記(2)において、水平多関節ロボットの作業対象物の配置候補位置が、作業対象物上のロボットアームのエンドエフェクタの作業点の候補位置であるものである。
【0013】
(4)本発明の一つの態様に係る最適位置決定支援方法は、ロボットアーム先端のエンドエフェクタで作業を行う水平多関節ロボットの作業対象物の最適な配置位置の決定を支援する方法であって、作業対象物上の複数の作業位置を連続して通過する作業経路を含む移動経路を指定し、作業対象物の配置対象領域をシミュレート範囲として指定し、移動経路に従ってロボットアームを擬似的に動作させるシミュレーションを、シミュレート範囲内で作業対象物の配置位置を順次変えて作成した複数の移動経路それぞれについて行い、ロボットアームの移動時間を最も短くできる作業対象物の配置位置である最適位置のシミュレーション結果を少なくとも出力することによって、作業対象物の最適位置を決定するものである。
【0014】
(5)本発明の他の態様に係る最適位置決定支援方法は、上記(1)〜(4)の何れかにおいて、シミュレーション結果が、最適位置に関する位置データと、この最適位置に対応する移動経路での移動時間とを少なくとも含むものである。
【0015】
(6)本発明の他の態様に係る最適位置決定支援方法は、上記(1)〜(5)の何れかにおいて、シミュレーション結果が、各シミュレート位置それぞれに関する位置データと、各移動経路それぞれでの移動時間とを含むものである。
【0016】
(7)本発明の他の態様に係る最適位置決定支援方法は、上記(6)において、各移動経路それぞれの移動時間を、それぞれの移動経路に対応するシミュレート位置を模した並べ方で表示出力するものである。
【0017】
(8)本発明の他の態様に係る最適位置決定支援方法は、上記(6)又は(7)において、最適位置に関するシミュレーション結果を強調出力するものである。
【0018】
(9)本発明の他の態様に係る最適位置決定支援方法は、上記(8)において、各シミュレート位置のうち、シミュレーションの際に最初に指定されるシミュレート位置であるシミュレート対象位置に関するシミュレーション結果を強調出力するものである。
【0019】
(10)本発明の他の態様に係る最適位置決定支援方法は、上記(5)〜(9)の何れかにおいて、位置データが、各シミュレート位置のうち、シミュレーションの際に最初に指定されるシミュレート位置であるシミュレート対象位置からの相対距離であり、シミュレーション結果は、最適位置の座標値を更に含むものである。
【0020】
(11)本発明の他の態様に係る最適位置決定支援方法は、上記(10)において、シミュレーション結果が、シミュレート対象位置の座標値も更に含むものである。
【0021】
(12)本発明の他の態様に係る最適位置決定支援方法は、上記(5)〜(11)の何れかにおいて、シミュレーション結果が、移動経路を最適位置での最適移動経路に変えた場合に短縮される移動時間を更に含むものである。
【0022】
(13)本発明の他の態様に係る最適位置決定支援方法は、上記(1)〜(12)の何れかにおいて、シミュレーション結果の出力を表示装置で行うものである。
【0023】
(14)本発明の一つの態様に係る最適位置決定支援装置は、水平多関節ロボットの動作位置の配置決定により、作業対象物の最適配置を支援する最適位置決定支援装置であって、水平多関節ロボットのロボットアームの移動経路を特定する第1固定位置、シミュレート位置及び第2固定位置と、シミュレート位置を含むシミュレート範囲とを指定する教示データを入力する入力手段と、第1固定位置、シミュレート位置及び第2固定位置をこの順で通過する移動経路に従ってロボットを擬似的に動作させるシミュレーションを、シミュレーション位置をシミュレート範囲内で順次変えて作成した複数の移動経路それぞれについて行う演算手段と、各シミュレート位置のうち、ロボットアームの移動時間が最も短くなる移動経路に対応する最適位置のシミュレーション結果を少なくとも出力する出力手段とを備えたものである。
【0024】
(15)本発明の他の態様に係る最適位置決定支援装置は、上記(14)において、各シミュレート位置には、水平多関節ロボットの作業対象物の配置候補位置が指定されるものである。
【0025】
(16)本発明の他の態様に係る最適位置決定支援装置は、上記(15)において、水平多関節ロボットの作業対象物の配置候補位置が、作業対象物上のロボットアームのエンドエフェクタの作業点の候補位置であるものである。
【0026】
(17)本発明の一つの態様に係る最適位置決定支援装置は、ロボットアーム先端のエンドエフェクタで作業を行う水平多関節ロボットの作業対象物の最適な配置位置の決定を支援する装置であって、シミュレート位置に配置した作業対象物上の複数の作業位置を連続して通過する作業経路を含む移動経路と、シミュレート位置を含み、作業対象物の配置対象領域としてのシミュレート範囲とを指定する教示データを入力する入力手段と、移動経路に従ってロボットアームを擬似的に動作させるシミュレーションを、シミュレート範囲内で作業対象物の配置位置を順次変えて作成した複数の移動経路それぞれについて行う演算手段と、少なくとも、ロボットアームの移動時間を最も短くできる作業対象物の配置位置である最適位置のシミュレーション結果を出力する出力手段とを備えたものである。
【0027】
(18)本発明の他の態様に係る最適位置決定支援装置は、上記(14)〜(17)の何れかにおいて、シミュレーション結果が、最適位置に関する位置データと、この最適位置に対応する移動経路での移動時間とを少なくとも含むものである。
【0028】
(19)本発明の他の態様に係る最適位置決定支援装置は、上記(14)〜(18)の何れかにおいて、シミュレーション結果が、各シミュレート位置それぞれに関する位置データと、各移動経路それぞれでの移動時間とを含むものである。
【0029】
(20)本発明の他の態様に係る最適位置決定支援装置は、上記(19)において、出力手段が、各移動経路それぞれの移動時間を、それぞれの移動経路に対応するシミュレート位置を模した並べ方で表示出力するものである。
【0030】
(21)本発明の他の態様に係る最適位置決定支援装置は、上記(19)又は(20)において、出力手段が、最適位置に関するシミュレーション結果を強調出力するものである。
【0031】
(22)本発明の他の態様に係る最適位置決定支援装置は、上記(21)において、出力手段が、各シミュレート位置のうち、シミュレーションの際に最初に指定されるシミュレート位置であるシミュレート対象位置に関するシミュレーション結果を強調出力するものである。
【0032】
(23)本発明の他の態様に係る最適位置決定支援装置は、上記(18)〜(22)の何れかにおいて、位置データが、各シミュレート位置のうち、シミュレーションの際に最初に指定されるシミュレート位置であるシミュレート対象位置からの相対距離であり、シミュレーション結果は、最適位置の座標値を更に含むものである。
【0033】
(24)本発明の他の態様に係る最適位置決定支援装置は、上記(23)において、シミュレーション結果が、シミュレート対象位置の座標値も更に含むものである。
【0034】
(25)本発明の他の態様に係る最適位置決定支援装置は、上記(18)〜(24)の何れかにおいて、シミュレーション結果が、移動経路を最適位置での最適移動経路に変えた場合に短縮される移動時間を更に含むものである。
【0035】
(26)本発明の他の態様に係る最適位置決定支援装置は、上記(14)〜(25)の何れかにおいて、出力手段が表示装置であるものである。
【0036】
(27)本発明の一つの態様に係るロボットシステムは、上記(14)〜(26)の何れかの最適位置決定装置と、ユーザプログラムを記憶する記憶手段と、ユーザプログラムを構成する命令を解釈実行する解釈実行手段とを備え、教示データは、ユーザプログラムであり、ユーザプログラムを構成する命令によって移動経路と、シミュレート範囲と、各シミュレート位置とが指定されており、解釈実行手段は、ユーザプログラム中にシミュレーションの実行を指示する命令が記述されていなかった場合、ロボットアームを実際に移動させる通常モードで移動経路に従ってロボットアームを移動させ、ユーザプログラム中にシミュレーションの実行を指示する命令が記述されていた場合、各移動経路それぞれに従ってロボットアームを擬似的に動作させるシミュレーションを行なわせるものである。
【0037】
上記(1)及び(14)の発明によれば、ユーザは、ロボットアームの移動時間を最も短くできる最適な動作位置をシミュレーション結果に基づき簡単に決定することが可能となる。よって、このシミュレーション結果を活用して現状のロボット動作位置から最適位置に変更することにより、効率的なロボット動作を容易に実現することが可能となる。
【0038】
上記(2)及び(15)の発明によれば、ユーザは、作業対象物の最適な配置位置を簡単に決定することが可能となる。
【0039】
上記(3)及び(16)の発明によれば、ユーザは、作業対象物に作業を行う多関節ロボットのエンドエフェクタの最適な作業点の配置位置を簡単に決定することが可能となる。
【0040】
上記(4)及び(17)の発明によれば、水平多関節ロボットに作業対象物上の複数箇所で作業を行なわせるロボット動作を行わせるに際し、ユーザは、その作業対象物の最適な配置位置を簡単に決定することが可能となる。なお、移動経路は作業経路を含むとしているため、移動経路が作業経路と等しい場合も内容的に含んでおり、後述の実施の形態(具体例2)では、この場合を例に説明している。
【0041】
上記(5)及び(18)の発明によれば、ユーザは、最適位置に関する位置データと、この最適位置に対応する移動経路での移動時間とを確認することができる。
【0042】
上記(6)及び(19)の発明によれば、全てのシミュレート位置でのシミュレーション結果が確認でき、比較検討が容易に行える。
【0043】
上記(7)及び(20)の発明によれば、各シミュレート位置それぞれの配置状態と、それぞれに対応する移動時間とを同時に確認できるため、シミュレーション結果をイメージ的に捉えることが可能となり、ユーザは、シミュレーション範囲のうち、どの辺りの領域で移動時間が短くなるのかなど、素早く判断することが可能となる。
【0044】
上記(8)及び(21)の発明によれば、ユーザは、複数出力されたシミュレーション結果の中から、最適位置のシミュレーション結果を容易に選出することが可能となる。
【0045】
上記(9)及び(22)の発明によれば、ユーザは、複数出力されたシミュレーション結果の中から、最適位置に加え、シミュレート対象位置のシミュレーション結果も容易に選出することが可能となる。
【0046】
上記(10)及び(23)の発明によれば、ユーザは、シミュレーション結果に基づいてロボット作業の効率化を実現するに際し、そのためのユーザプログラムの作成を最適位置の座標値を利用して簡単に行うことが可能となる。
【0047】
上記(11)及び(24)の発明によれば、ユーザは、最適位置の座標値に加え、シミュレート対象位置の座標値も同時に確認することが可能となる。
【0048】
上記(12)及び(25)の発明によれば、ユーザは、移動経路を最適位置での最適移動経路に変えた場合に短縮することのできる移動時間も知ることができ、比較検討が容易に行える。
【0049】
上記(13)及び(26)の発明によれば、ユーザは、シミュレーション結果を表示装置上で確認できる。
【0050】
上記(27)の発明によれば、ユーザプログラム中に、シミュレーションの実行を指示する命令が記述されているか否かによって、ロボットを実際に動作させずシミュレーションを行うシミュレーションモードと、実際にロボットを動作させる通常モードと、が切り替えられるので、ユーザは、今あるユーザプログラムにおいて、動作位置を最適位置に変更すると共に、シミュレーションの実行を指示する命令の記述を削除(削除の他、シミュレーションの実行を阻止する命令の記述でもよい)することによって、効率的なロボット作業を実現するプログラムに簡単に書き換えることが可能となる。
【0051】
【発明の実施の形態】
実施の形態1.
図1は本発明の実施の形態1のロボットシステムの構成を示す模式図である。
図において1は水平多関節ロボット、2はコントロールユニット、3はコントロールユニット2からの制御信号に従って水平多関節ロボット1の各関節の各モータを駆動するドライブユニットである。4はコントロールユニット2から出力されるデータを表示するCRTモニターである。5はキーボード、6はマウスで、ユーザがコントロールユニット2を操作したり、ユーザプログラムを作成する際の入力装置として使用される。
【0052】
図2は水平多関節ロボットの概要図である。
図において、11は、基台12の上部に回動自在に設けられた軸で、該軸11には第1アーム13が取付られ、該第1アーム13は軸11によってXY水平面を旋回するようになっている。この第1アーム13の先端部には軸14が回動自在に設けられ、該軸14には第2アーム15の基端部が取り付けられ、軸14によって第2アーム15がXY水平面を旋回するようになっている。第2アーム15の先端部には、回動及びZ方向の直動自在な軸16が設けられ、該軸16には同軸にZ軸17が取りつけられ、該Z軸17は軸16と一体となって動作するようになっている。
【0053】
このような構成の水平多関節ロボット1は、軸11及び軸14を任意の位置まで回転することにより第1アーム13及び第2アーム15をXY水平面の任意の位置に移動させることができるようになっている。なお、本来、水平多関節ロボット1の動作は前述の軸11、14、16、17の4つの軸を制御することにより完結するものである。本発明はXY水平面の動作に関わるものであるので、Z軸方向の動作については省略し、XY水平面の動作に大きく関連している軸11、第1アーム13、軸14、第2アーム15動作を中心に説明を進めることにする。
【0054】
図3はコントロールユニットの概略構成を示す図である。
コントロールユニット2は、演算装置(CPU)21、ROM22、RAM23、HD24、HDD25、FDD26、ドライブユニット3と通信するためのドライバーインターフェース27等を備えている。
【0055】
HD24には、ティーチング時に指定された動作位置やユーザにより作成されたユーザプログラムなどの教示データが格納されている。ROM22には、ユーザプログラムを解釈実行するための後述の図8及び図9に示すフローチャートに対応した解釈実行プログラム、図10〜図12に示すフローチャートに対応したシミュレーションプログラム等、CPU21が動作するための各種プログラムが格納されている。
【0056】
CPU21は、ユーザプログラムを構成している命令を、解釈実行プログラムに従って1命令ずつ解釈実行し、ユーザの意図する動作をユーザプログラムに記述された順番に実行する。解釈実行プログラムは、ユーザプログラムの最終命令までの解釈実行が終了すると、シミュレーションプログラムをコールして、シミュレーションプログラムに制御を受け渡すように構成されている。このCPU21と解釈実行プログラムで解釈実行手段が構成され、CPU21とシミュレーションプログラムとで演算手段が構成されている。
【0057】
RAM23は、CPU21が解釈実行プログラムやシミュレーションプログラム等の各種プログラムに従って動作する際に使用され、各種プログラムの実行に必要なフラグや各種パラメータの一時記憶に利用されるメモリである。
【0058】
以上のように構成されたコントロールユニット2は、上記の説明でもわかるように、一般的なパーソナルコンピュータにドライバーインターフェース27を追加した構成となっている。
【0059】
図4は、本実施の形態1の最適位置決定支援方法の流れの概要を示す図である。
本実施の形態1の最適位置決定支援方法は、大まかに段階を分けると、水平多関節ロボット1のロボットアームの第1候補移動経路を特定する動作位置(第1候補位置及び固定位置)を指定する段階(S1)と、シミュレート範囲を指定する段階(S2)と、シミュレート範囲内の複数の第2候補位置とを指定する段階(S3)と、第1候補位置を、第2候補位置に変えて第1候補移動経路を変更した第2候補移動経路を順次求め、第1候補移動経路及び各第2候補移動経路それぞれに従って水平多関節ロボット1を擬似的に動作させてシミュレーションを行い各移動経路それぞれでのロボットアームの移動時間を求める段階(S4)と、シミュレーション結果を出力する段階(S5)とで構成される。
【0060】
第1候補位置及び固定位置、シミュレート範囲、各第2候補位置は、これらの各データを指定する命令がユーザプログラム中に記述されており、これら各命令をCPU21が解釈実行することにより指定されるものである。なお、以下では、第1候補位置及び各第2候補位置を、これらの各位置がステップS4におけるシミュレーションの基準位置となることからシミュレート位置と呼び、各シミュレート位置のうち、特に、第1候補位置をシミュレート対象位置と呼ぶことにする。
【0061】
以下、本実施の形態1の最適位置決定支援方法について、具体的なロボット動作を2例挙げて説明する。
【0062】
<具体例1>
図5は、ロボット動作の具体例1を示す図で、図1に示した水平多関節ロボットのロボットアーム先端の移動経路をロボットアーム概略図で示したものである。
具体例1では、水平多関節ロボット1がロボットアーム先端をP0→P1→P5の経路で移動させ、P0に置かれた部品を、P0で保持して作業対象物W上のP1に搬送し、その後、次の作業のためにロボットアーム先端をP5に移動させる動作を行う場合を想定する。本発明の最適位置決定支援は、この具体例1でまず簡単に概要を説明すると、作業対象物W上の作業点を、実線で示した作業対象物W上のP1から、その他、例えば破線で示した作業対象物W上のP1’等に順次変えてそれぞれの移動経路でのロボットアーム移動時間をシミュレーションによって求めることで、この作業対象物Wの最適な配置位置の決定支援を行うものである。以下、詳細に説明する。
【0063】
図6は図5の具体例1の詳細説明図である。図6において、P1はシミュレート対象位置、「○」は各シミュレート位置、SRはシミュレート範囲を示している。図7は図6のシミュレーションを実現するユーザプログラムの一例を示す図である。
【0064】
ところで、プログラムを構成するためのロボットプログラミング言語は、表1に示すように、実際にロボットを動作させるための『動作命令』、動作の回数を指定したり、条件によるプログラムの実行先を分岐させたりする『制御命令』、その他入出力命令、動作位置定義命令等の命令によって構成されている。
【0065】
【表1】
【0066】
通常、ロボット動作を実現するプログラムでは、まず最初にロボット動作位置を定義するための動作位置定義命令が記述され、そして、その定義された動作位置を目標位置として指定するJUMP等の動作命令が記述される構成となっている。そして、このように構成されたプログラムを実行することで、ロボットアームを、動作命令で指定された目標位置へ移動させるロボット動作が実現される。
【0067】
本実施の形態では、前述の動作命令等に加え、上述のようなシミュレーションを行うためのミュレーション命令を用意し、シミュレーション命令が適当箇所に記述されたユーザプログラムをCPU21が解釈実行することで、水平多関節ロボット1を動作命令に従って実際に動作させる通常モードと、実際に水平多関節ロボット1を動作させることなく擬似的に動作させてシミュレーションを行うシミュレーションモードとを切り替えることができるようになっている。
【0068】
表2はシミュレーション命令の詳細を示す表である。
【0069】
【表2】
【0070】
表2に示すように、シミュレーション命令は、シミュレーションモードON命令、シミュレーションモードOFF命令、シミュレート位置設定命令、シミュレート範囲設定命令、時間推定開始命令、時間推定終了命令で構成されている。この各命令の詳細については、以下、該当箇所で適宜説明することにする。
【0071】
図7のユーザプログラムにおいて、1〜4行目は「‘ 」で始まるコメント文、5〜7行目に記述された命令は、ロボットの移動経路を指定するための動作位置を定義するための動作位置定義命令で、例えば5行目の動作位置定義命令では、P0を、X座標、Y座標、Z座標、XY平面の回転角をそれぞれ250、0、0、0と定義している。なお、この例では、ユーザプログラムでロボット動作位置を指定しているが、ティーチングにより指定するようにしても良い。
【0072】
そして、9行目に記述された命令「SIM MODE ON」は、表1及び表2に示すようにシミュレーションモードON命令で、この命令によってシミュレーションモードをONにすることにより、この命令以降に動作命令があっても、実際のロボット動作を起動することなく、擬似的に動作させてシミュレーションを行うシミュレーションモードに設定される。
【0073】
ついで、10行目に記述された命令「SIM POS(P1)」により、シミュレート対象位置をP1と指定している。なお、シミュレート対象位置P1の座標は先に定義されているように(X=50,Y=100)である。
【0074】
11行目に記述された命令「SIM RANGE(50,3,-2,25,2,0)」は、シミュレート範囲設定命令で、図6に示すシミュレート範囲SRを指定している。シミュレート範囲設定命令の各パラメータ(表2参照)は、最初から順にXステップ距離、Xステップ開始カウント、Xステップ終了カウント、Yステップ距離、Yステップ開始カウント、Yステップ終了カウントである。
【0075】
Xステップ距離は、図6の距離SXに相当するもので、シミュレート範囲SR内の各シミュレート位置間のX方向の間隔である。Yステップ距離は図6の距離SYに相当するもので、シミュレート範囲SR内の各シミュレート位置間のY方向の間隔である。
【0076】
このシミュレート範囲設定命令では、シミュレート対象位置P1を基準としてX軸の正方向にXステップ距離をXステップ開始カウント(すなわち3回)進めたX座標値と、Y軸の正方向にYステップ距離をYステップ開始カウント(すなわち2回)進めたY座標値とで特定される点Paと、X軸方向にXステップ距離をXステップ終了カウント(すなわちX軸の負方向に2回)進めたX座標値と、Y軸方向にYステップ距離をYステップ終了カウント(すなわち0回)進めたY座標値とで特定される点Pbを対角の端点とした四角形の領域において、X方向にSX間隔、Y方向にSY間隔で刻まれた各点をシミュレート位置と指定している。
【0077】
なお、以下では、シミュレート対象位置からの各シミュレート位置への距離をシミュレート量と呼ぶことにする。よって、ここでは、シミュレート量は、X方向について、+150、+100、+50、0、−50、−100となり、Y方向について、+50、+25、0となる。また、シミュレート範囲SR内の各シミュレート位置を、ステップカウントを用いて、PS(Xステップカウント,Yステップカウント)と表現することにする。よって、例えばPaはPS(3,2)、PbはPS(−2,0)と表現されることになる。なお、各シミュレート位置のうち、或る1点を特定しないときはシミュレート位置PSと表現することにする。
【0078】
図7の説明に戻る。13行目に記述された命令「JUMP P0」はロボットアームをP0へ移動させる動作を指示するものである。この例では、上述したようにP0からシミュレート位置PSへ移動し、そしてさらにP5へ移動するまでの移動時間をシミュレーションにより求めるものであるため、シミュレーションによる移動時間推定開始を指示する時間推定開始命令「SIM START」と、シミュレーションによる移動時間推定終了を指示する時間推定終了命令「SIM STOP」との間に、「JUMP P1」、「JUMP P5」を記述することにより、これをプログラミングしている。
【0079】
このように構成されたユーザプログラムを実行することにより、P1→PS→P5の移動経路がシミュレート位置PSを順次変更したそれぞれについて特定され、各移動経路それぞれでのロボットアームの移動時間がシミュレーションによって求められる。以下、ユーザプログラムを解釈実行するプログラム解釈実行プログラムの処理の流れを説明する。
【0080】
図8、プログラム解釈実行プログラムの処理の流れを示すフローチャートである。
なお、本実施の形態のプログラム解釈実行プログラムは、ユーザプログラムを1行目から最終行まで順に1命令ずつ読み込んで解釈し、それぞれ命令に応じた処理を行った後、この1回目のユーザプログラムの解釈実行によってシミュレーションフラグがONに設定された場合に、シミュレーションプログラムをコールしてシミュレーション処理を行うように構成されている。これは、ユーザが、ユーザプログラム中でシミュレーションフラグをON/OFFに設定するだけで、実際にロボットを動作させる場合の通常モードと、動作させずにシミュレーションを行うシミュレーションモードとを切り替えることを可能とするための構成である。
【0081】
CPU21は、まず最初にプログラムカウンタとロボット位置とを初期化すると共に、シミュレーションフラグをOFFにする(S11)。ついで、ユーザプログラムの1行目の命令を読み込み(S12)、命令の内容に応じて次の動作に移行する(S13)。
【0082】
読み込んだ命令がロボット動作位置定義命令であれば、ロボット動作位置を定義する(S14)。
【0083】
読み込んだ命令がシミュレーション命令であれば、シミュレーション命令の内容に応じた処理に移行する(S15)。このシミュレーション命令がシミュレーションフラグON命令であれば、シミュレーションフラグをONにし(S16)、シミュレーションフラグOFF命令であれば、シミュレーションフラグをOFFにする(S17)。また、シミュレート位置設定命令であれば、現在、シミュレーションフラグがONかどうかをチェックし(S18)、ONに設定されていれば、シミュレート位置設定命令中のパラメータで指定されているロボット動作位置をシミュレート対象位置としてRAM23に記憶する(S19)。また、シミュレート範囲設定命令であれば、同様に、現在、シミュレーションフラグがONかどうかをチェックし(S20)、ONに設定されていれば、シミュレート範囲設定命令中の各パラメータをシミュレート範囲指定パラメータ群としてRAM23に記憶する(S21)。なお、ステップS18及びS20において、シミュレーションフラグがOFFと判断した場合、すなわち、シミュレーションモードではなく通常の動作モードであれば、これらのシミュレーション命令は無視される。また、時間推定開始命令および時間推定終了命令であるときも、この1回目のユーザープログラムの読み込みの際には無視される。
【0084】
ステップS12において読み込んだ命令が動作命令であれば、シミュレーションフラグがOFFかどうかをチェックし(S22)、OFFであれば、すなわち通常の動作モードであれば、実際にロボットを動作させる動作命令処理を行う(S23)。例えば、JUMP命令であれば、表1に示すように、ロボットアームをJUMP命令で指定される位置に門型軌道で移動させる動作を実行させる。
【0085】
また、読み込んだ命令がその他の命令であれば、その命令に対応する処理を実行する(S24)。
【0086】
以上のように、読み込んだ命令に対応する処理が終了すると、CPU21はプログラム終了かどうかを判定する(S25)。読み込んだ命令がプログラムの終了を明示する「END」でない場合は、終了でないと判定し、プログラムカウンタをカウントアップし(S26)、ステップS12に戻り、次の行の命令を読み込んで、上記と同様の処理を行う。
【0087】
上記の処理を繰り返し行い、そして、ユーザプログラムの読み込みが最終命令「END」に達すると、シミュレーションフラグがONに設定されているかどうかをチェックし(S27)、ONに設定されていれば、シミュレーションプログラムをコールしてシミュレーションプログラムに制御を移す(S28)。ステップS27においてシミュレーションフラグがONに設定されていないと判断した場合、即ちシミュレーションフラグがOFFで通常の動作モードであれば、ここで処理を終了する。
【0088】
以上のように、ユーザプログラムにおいて動作命令が記述されている場合、CPU21は、シミュレーションモードがOFFか否かを判断し、シミュレーションフラグがOFFの場合に動作命令処理を行って実際のロボット動作を行わせるようにしているため、シミュレーションモードのON/OFFの設定によって通常モードとシミュレーションモードとを切り替えることが可能となる。
【0089】
以下、本発明の主要部であるシミュレーション処理の流れについて図面を参照しながら説明する。
図10〜図12は、シミュレーションプログラムの処理の流れを示すフローチャートである。このシミュレーションプログラムに基づくロボットコントローラの動作を、図7のユーザプログラムを実行する場合を例に説明する。なお、このシミュレーション処理に入る前の1回目のユーザプログラムの解釈実行により、シミュレート対象位置P1(250,0,0,0)及びシミュレート範囲指定パラメータ群(50,3,-2,25,2,0)が既にRAM23に記憶されているものとする。
【0090】
CPU21は、X及びYシミュレートステップカウンタをそれぞれ初期化すると共に、計測時間カウンタを0に初期化し、Xシミュレートステップカウンタ及びYシミュレートステップカウンタの最終値を、RAM23に格納されたシミュレート範囲指定パラメータ群に基づいて設定する(S31)。
【0091】
ここで、Xシミュレートステップカウンタはシミュレート範囲指定パラメータ群のうち、Xステップ開始カウントの値に初期化される。よってここでは「3」に初期化され、同様にYシミュレートステップカウンタは「2」に初期化される。また、Xシミュレートステップカウンタの最終値には、Xステップ終了カウントが設定され、Yシミュレートステップカウンタの最終値には、Yステップ終了カウントが設定される。
【0092】
続いて、プログラムカウンタを初期化すると共に、ロボット位置を初期化する(S32)。そして、ユーザプログラムを1行目の命令から読み込み(S33)、命令の内容に応じて次の動作に移行する(S34)。
【0093】
1行目は「’」で始まるコメント文であることから、「その他の命令」として処理される(S39)。その後、CPU21はプログラム終了か否かをチェックし(S40)、ここではまだ終了でないと判断し、プログラムカウンタをカウントアップして(S49)、ステップS33に戻り、次の行の命令を読み込む。
【0094】
同様の処理が4行目の命令まで行われる。そして、CPU21は5行目に記述された命令を読み込むと、ロボット動作位置定義命令であると解釈し、シミュレーション命令でも、動作命令でもないその他の命令であると判断して、対応する処理を行って(S39)、ステップS40に移行する。なお、動作位置定義命令による動作位置の定義は既に当該ユーザプログラムの1回目の解釈実行時に行われていることから、ここでは、実際には何ら処理は行われない。6行目、7行目の動作位置定義命令においても同様である。
【0095】
続いてCPU21は、9行目に記述された「SIM MODE ON」を読み込むと、シミュレーション命令のうち(S35)、時間推定開始命令でも、時間推定終了命令でもない、その他のシミュレーションであることから、この命令を無視し、ステップS40に移行する。そして、ステップS40のプログラム終了判定を行い、プログラムカウンタをカウンタアップして(S49)、ステップS33に戻り、次の命令を読み込む。10行目、11行目も時間推定開始命令、時間推定終了命令のどちらでもないことから、同様にプログラムカウンタがカウンタアップされるのみの処理となる。
【0096】
そして、CPU21は13行目の「JUMP P0」を読み込むと(S33)、動作命令処理を実行する(S38)。
【0097】
図12は図10の動作命令処理の流れを示すフローチャートである。このシミュレーション処理における動作命令処理は、先の図9のステップS23の動作命令処理と異なり、ロボットアームを実際に動作させるのではなく、擬似的に動作させる処理を行うものである。
CPU21は、動作命令(ここではJUMP命令)で指定された動作位置P0がシミュレート対象位置か否かをRAM23を参照して判断する(S38a)。P0は、RAM23にシミュレート対象位置として記憶されたP1と異なるため、シミュレート対象位置ではないと判断し、ステップS38cに移行してロボットをJUMP命令に従って擬似的に動作させる。すなわち、コントロールユニット2内では、ロボットアームをP0に移動させたものとして処理される。ついで、計測内部フラグがONか否かを判断し(S38d)、ここではOFFであるため、動作命令処理を終了し、図10のステップS40に移行する。そして、ステップS40のプログラム終了判定、ステップS49のプログラムカウンタアップを行って、ステップS33に戻る。
【0098】
次に14行目に記述された「SIM START」を読み込むと、当該命令はシミュレーション命令のうち、時間推定開始命令であることから、CPU21は、計測内部フラグをONにし(S36)、ステップS40、ステップS49を行ってステップS33に戻る。
【0099】
次に15行目に記述された「JUMP P1」を読み込むと、動作命令処理(図12参照)に移行する。CPU21は、指定された動作位置P1がRAM23にシミュレート対象位置として記憶された位置と同じであるためシミュレート対象位置であると判断し(S38a)、そのシミュレート対象位置P1をXシミュレートステップカウンタ、Yシミュレートステップカウンタに基づいてオフセットしたシミュレート位置に設定する(S38b)。ここでは、Xシミュレートステップカウンタが「3」、Yシミュレートステップカウンタが「2」であることから、シミュレート位置は、図6においてPS(3,2)で示されるシミュレート開始位置Paに設定されることになる。
【0100】
そして、ロボットをJUMP命令に従ってシミュレート開始位置Paに擬似的に動作させる(S38c)。ついで計測内部フラグがONか否かをチェックし(S38d)、ここではONに設定されているため、ステップS38cの動作、すなわちロボットアームの、P0からシミュレート位置PS(3,2)への移動動作に必要な時間を計算する。そして、計算された移動時間を計測カウンタに追加して(S38f)、動作命令処理を終了する。そして、図10のステップS40に戻り、プログラム終了判定、ステップS49のプログラムカウンタアップを行ってステップS33に戻る。
【0101】
次に16行目に記述された「JUMP P5」を読み込むと、再度動作命令処理(図12参照)に移行する(S38)。P5はシミュレート対象位置でないため(S38a)、ステップS38bの処理は省略してステップS38cの処理に移行し、ロボットアームを現在位置PS(3,2)からJUMP命令で指定されたP5へ擬似的に動作させる。そして、ここでは計測内部フラグはONに設定されたままであるため(S38d)、ステップS38cの動作、すなわちロボットアームのシミュレート位置PS(3,2)からP5への移動動作に必要な時間を計算し、算出された移動時間を計測カウンタに追加する。これにより、計測カウンタには、P0→PS(3,2)→P5への移動に要する時間が格納されていることになる。そして、図10のステップS40に戻り、プログラム終了判定、ステップS49のプログラムカウンタアップを行ってステップS33に戻る。
【0102】
次に17行目に記述された「SIM STOP」を読み込むと(S33)、CPU21は、計測内部フラグをOFFにし(S37)、ステップS40のプログラム終了判定、ステップS49のプログラムカウンタアップを行ってS33に戻り、「END」を読み込むと、プログラム終了と判定して図11に示すステップS41の処理に移行する。
【0103】
ステップS41では、これまでの処理でのシミュレーション結果、すなわちシミュレート位置PS(3,2)でのシミュレーション結果を、Xシミュレート量、Yシミュレート量、計測カウンタ値の3データを1組とするシミュレートデータとしてRAM23に記憶する。Xシミュレート量、Yシミュレート量は、ここでは、「+150、50」となる。
【0104】
ついで、Xシミュレートステップカウンタが最終値に達したかをチェックする(S42)。Xシミュレートステップカウンタは、ここではまだ初期値の「3」であるため、Xシミュレートステップカウンタをカウントアップし(S43)、計測カウンタを0に初期化して(S47)、図10のステップS32に移行する。なお、Xシミュレートステップカウンタは、シミュレート範囲指定パラメータ群に含まれるXステップ終了カウントからXステップ開始カウントを減算した値が負の値を取るときは−1ずつカウントアップされ、正の値を取るときは1ずつカウントアップされる。よって、ここでは、−1カウントアップされて「2」となる。
【0105】
CPU21は、ステップS32において、プログラムカウンタを初期化すると共に、ロボット位置を初期化して、上記と同様の処理を行う。すなわち、再度、ユーザプログラムの1行目から解釈実行する。このシミュレーション処理における2回目(通算3回目)のユーザプログラムの解釈実行時には、図11のステップS43でXシミュレートステップカウンタがカウントアップされ「2」となっていることから(なお、Yシミュレートステップカウンタは「2」のままである)、ステップS40のプログラム終了判定がYESとなるまでの間の処理によって、ロボットアームをP0→PS(2,2)→P5へ移動させるのに要する時間が計測カウンタに保持されていることになる。
【0106】
そして、この2回目のユーザプログラムの解釈実行によって「END」が読み込まれると、図11のステップS41によって、シミュレート位置をPS(2,2)としたときのシミュレーション結果を示すシミュレートデータがRAM23に記憶されることになる。ここでのXシミュレート量、Yシミュレート量は、それぞれ「+100」、「50」となる。そして、ステップS42でシミュレートステップカウンタが最終値に達したかを判断し、ここではまだ達していないため、Xシミュレートステップカウンタをカウントアップし(S43)、すなわち、−1カウントアップして「1」とし、計測カウンタを初期化して(S47)、図10のステップS32に戻る。
【0107】
以上の処理を繰り返し行い、図11のステップS42においてXシミュレートステップカウンタが最終値に達したと判断した場合(S42)、すなわち、各シミュレート位置のうち、Yステップカウントが「2」である、図6において横一列のシミュレート位置PS(3,2)、PS(2,2)、PS(1,2)、PS(0,2)、PS(−1,2)、PS(−2,2)のシミュレーションが終了すると、Xシミュレートステップカウンタを初期化(「3」に初期化)し(S44)、Yシミュレートステップカウンタの最終値到達判定を行った上で(S45)、Yシミュレートステップカウンタをカウントアップする(S46)。
【0108】
このYシミュレートステップカウンタのカウントアップもXシミュレートステップカウンタのカウントアップと同様に、Yステップ終了カウントからYステップ開始カウントを減算した値が負の値を取るときは、−1ずつカウントアップされ、正の値を取るときは1ずつカウントアップされる。よって、ここではYステップカウントが「1」となり、以上の処理の繰り返しにより、Yステップカウントが「1」の各シミュレート位置のシミュレーションを行い、それぞれのシミュレート位置での移動時間の計算及びシミュレートデータの記憶を順次繰り返す。そして、Xステップカウントが「−2」の最終値に達し、且つ、Yステップカウントが「0」の最終値に達すると(S45)、RAM23に記憶した全てのシミュレート位置でのシミュレートデータをCRTモニター4に表示する(S48)。
【0109】
図13は、CRTモニターに表示されたシミュレーション結果画面の出力例を示す図である。
このシミュレーション結果出力により、ユーザは、作業対象物Wをどの位置に配置すれば、最も短い時間で作業ができるかを判断することが可能となる。この例では、移動時間が0.80となる、Xシミュレート量+150、Yシミュレート量50の位置を最適位置と判断することができ、この最適位置に作業対象物Wを配置することにより、作業効率の高いロボット作業を実現することが可能となる。ユーザはこの結果を基に、ユーザプログラムにおいて、P1の位置を最短移動時間が得られる最適位置に定義し直し、シミュレーションモードON命令をプログラムから削除するか、またはシミュレーションモードOFF命令に書き換えることにより、効率的なロボット作業を実現するプログラムに簡単に書き換えることが可能となる。
【0110】
<具体例2>
【0111】
図14はロボット動作の具体例2を示す図で、図1に示した水平多関節ロボット1のロボットアーム先端の移動経路をロボットアーム概略図で示したものである。
この例では、水平多関節ロボット1は、ロボットアーム先端をP0から作業対象物W上のP1に移動させ、そして、作業対象物W上でその四隅のP2、P3、P4、P1にこの順に移動して各位置でそれぞれ作業を行い、この作業経路P2→P3→P4→P1での動作を再度繰り返した後、ロボットアーム先端をP5に移動させる動作を行う場合を想定する。ここでは、作業対象物Wの最適な配置位置の選出を目的として、この作業経路P2→P3→P4→P1を2回移動する動作をシミュレーションの対象とする。
【0112】
図15は図14のシミュレーションを実現するユーザプログラムの一例を示す図である。
5行目から10行目でP0〜P5の各ロボット動作位置を定義している。12行目でこのユーザプログラムをシミュレーションモードで実行させることを指定している。13行目でシミュレート対象位置をP1〜P4と指定し、14行目でシミュレーションの範囲を指定している。この例では、Yステップ開始カウント及びYステップ終了カウントが共に0であるため、シミュレート位置は、シミュレート対象位置P1〜P4をそれぞれX軸の正の方向に15mm移動させた位置から、X軸の負の方向に10mm移動させた位置までの直線上に、5mm間隔で刻まれた各点となる。すなわち、図14において◆、●、○、◇で示した位置が、それぞれ各シミュレート対象位置P1、P2、P3、P4に対応する各シミュレート位置となる。また、Xステップ開始カウントが「3」であることから、最初のシミュレート位置は、PS1(3,0)、PS2(3,0)、PS3(3,0)、PS4(3,0)となる。
【0113】
また、このシミュレーションは、上述したように、P0からP1へ移動した後の、P2→P3→P4→P1の2回の繰り返し移動動作を対象としているため、16行目、17行目でP0,P1への動作命令が記述された後、18行目で移動時間推定の開始が指示され、そして、19行目から24行目までの「FOR … NEXT」ルーチンによってP2→P3→P4→P1への動作命令を2回繰り返すように記述され、25行目で移動時間推定の終了が指示され、そして、26行目でP5への動作命令が記述されたユーザプログラムとなっている。
【0114】
このように構成されたユーザプログラムを上述の図10〜図12のフローチャートに従って処理することで、まず、ロボットアームをPS2(3,0)→PS3(3,0)→PS4(3,0)→PS1(3,0)の作業経路を2回移動させるのに要する移動時間が求められ、ついで作業経路をPS2(2,0)→PS3(2,0)→S4(2,0)→PS1(2,0)とした場合での同様の移動時間が求められる。すなわち、作業対象物WをX軸に平行に5mmずつ移動させてそれぞれの位置でのシミュレーションが行われることになる。そして、作業経路をPS2(−2,0)→PS3(−2,0)→PS4(−2,0)→PS1(−2,0)としたときのシミュレーションが終了すると、シミュレーション結果画面がCRTモニター4に表示される。
【0115】
図16は、CRTモニターに表示されたシミュレーション結果画面の出力例を示す図である。
シミュレーション結果出力により、ユーザは、作業対象物Wをどの位置に配置すれば、最も短い時間で作業ができるかを判断することが可能となる。この例では、移動時間が4.53となる、Xシミュレート量が+15、Yシミュレート量が0の位置を最適位置と判断することができ、この最適位置に作業対象物Wを配置することにより、作業効率の高いロボット作業を実現することが可能となる。ユーザはこの結果を基に、ユーザプログラムにおいて、P1、P2、P3、P4の位置を最短移動時間が得られる最適位置に定義し直し、シミュレーションモードON命令をプログラムから削除するか、またはシミュレーションモードOFF命令に書き換えることにより、効率的なロボット作業を実現するプログラムに簡単に書き換えることが可能となる。
【0116】
実施の形態2.
本実施の形態2は、シミュレーション結果の効果的な出力方法に関するものである。
図17は、シミュレーション結果出力の他の構成例1を示す図である。なお、ここでは図7のユーザプログラムに対応したものを例示している。この構成例1は、シミュレート対象位置でのシミュレートデータと、移動時間が最短となる最適位置でのシミュレートデータを、太字で強調表示するようにしたものである。なお、CRTモニター4がカラー表示可能なものであれば、表示色を変えて強調表示するようにしても良い。また、この構成例1では、シミュレートデータのリスト表示の他に、シミュレート対象位置の絶対位置(座標値)と移動時間とを含むシミュレート対象位置情報を表示し、更に、最適位置の絶対位置(座標値)と移動時間と、シミュレート対象位置の場合と比較して短縮されるであろう時間(図17において括弧内の数値)とを含む最適位置情報を表示するようにしている。
【0117】
以上のように表示することで、ユーザは、リスト表示された複数のシミュレートデータの中から、シミュレート対象位置でのシミュレートデータと、最適位置でのシミュレートデータとを直ちに選出することが可能となる。また、このリスト表示と同時にシミュレート対象位置と最適位置のそれぞれの座標値が表示されるため、ユーザは、このシミュレーション結果に基づいてユーザプログラムを書き換える際に、これらの座標値を利用して簡単にユーザプログラムを変更することが可能となる。なお、強調表示の方法は、太字表示、異色表示に限られず、シミュレート対象位置及び最適位置でのシミュレートデータの選出が視覚的に容易な形式を各種採用できる。
【0118】
図18は、シミュレーション結果出力の他の構成例2を示す図である。
この構成例2は、図17においてリスト表示された部分の表示形式を変えたもので、各シミュレート位置それぞれでの移動時間を、その移動時間に対応するシミュレート位置の位置関係を視覚的に確認できるように表示するものである。上記では、シミュレート範囲を四角形で構成し、各シミュレート位置をシミュレート範囲内でマトリックス状に配置した構成としているので、ここでは各移動時間がマトリックス状に表示されている。この表示により、各シミュレート位置の配置状態と、それぞれに対応する移動時間とを視覚的に同時に確認することが可能となるため、シミュレーション結果をイメージ的に捉えることが可能となり、ユーザは、シミュレーション範囲のうち、どの辺りの領域で移動時間が短くなるのかなどを素早く判断することが可能となる。なお、シミュレート範囲は、上記のような四角形に限られたものではなく、例えば円形や三角形など任意の形状とすることが可能である。
【図面の簡単な説明】
【図1】 本発明の各実施の形態のロボットシステムの構成を示す模式図である。
【図2】 図1の水平多関節ロボットの概要図である。
【図3】 図1のコントロールユニットの概略構成を示す図である。
【図4】 本実施の形態1の最適位置決定支援処理の流れの概要を示す図である。
【図5】 ロボット動作の具体例1を示す図である。
【図6】 図5の具体例1の詳細説明図である。
【図7】 図6のシミュレーションを実現するユーザプログラムの一例を示す図である。
【図8】 プログラム解釈実行プログラムの処理の流れを示すフローチャート(1/2)である。
【図9】 プログラム解釈実行プログラムの処理の流れを示すフローチャート(2/2)である。
【図10】 シミュレーションプログラムの処理の流れを示すフローチャート(1/3)である。
【図11】 シミュレーションプログラムの処理の流れを示すフローチャート(2/3)である。
【図12】 シミュレーションプログラムの処理の流れを示すフローチャート(3/3)である。
【図13】 CRTモニターに表示されたシミュレーション結果画面の出力例を示す図(その1)である。
【図14】 ロボット動作の具体例2を示す図である。
【図15】 図14のシミュレーションを実現するユーザプログラムの一例を示す図である。
【図16】 CRTモニターに表示されたシミュレーション結果画面の出力例を示す図(その2)である。
【図17】 シミュレーション結果出力の他の構成例1を示す図である。
【図18】 シミュレーション結果出力の他の構成例2を示す図である。
【図19】 第1アームと第2アームを有する水平多関節ロボットのロボットアーム先端を点Aから点Bに移動するときの各アームの回転角度の説明図である。
【図20】 第1アームと第2アームを有する水平多関節ロボットのロボットアーム先端を点Cから点Dに移動するときの各アームの回転角度の説明図である。
【図21】 図19及び図20の第1アームが415mm、第2アームが235mmであるときの水平多関節ロボットのロボットアーム先端を、X軸方向に30cm、1往復した時の移動時間を示す棒グラフ図である。
【図22】 図22は図21の往復動作を行う水平多関節ロボットの模式図である。
【符号の説明】
1 水平多関節ロボット、2 コントロールユニット、5 キーボード、6 マウス、21 CPU、22 ROM、24 HD
Claims (27)
- 水平多関節ロボットの動作位置の配置決定により、作業対象物の最適配置決定を支援する方法であって、
前記水平多関節ロボットのロボットアームの移動経路を特定する第1固定位置、シミュレート位置及び第2固定位置を指定し、前記シミュレート位置を含むシミュレート範囲を指定し、前記第1固定位置、前記シミュレート位置及び前記第2固定位置をこの順で通過する移動経路に従って前記ロボットを擬似的に動作させるシミュレーションを、前記シミュレート位置をシミュレート範囲内の他のシミュレート位置に順次変えて作成した複数の移動経路それぞれについて行い、前記各シミュレート位置のうち、前記ロボットアームの移動時間が最も短くなる移動経路に対応する最適位置のシミュレーション結果を少なくとも出力することによって、前記作業対象物の最適位置を決定することを特徴とする最適位置決定支援方法。 - 前記各シミュレート位置には、前記水平多関節ロボットの作業対象物の配置候補位置が指定されることを特徴とする請求項1記載の最適位置決定支援方法。
- 前記水平多関節ロボットの作業対象物の配置候補位置は、前記作業対象物上の前記ロボットアームのエンドエフェクタが作業を行う位置の候補位置であることを特徴とする請求項2記載の最適位置決定支援方法。
- ロボットアーム先端のエンドエフェクタで作業を行う水平多関節ロボットの作業対象物の最適な配置位置の決定を支援する方法であって、
前記作業対象物の配置対象領域をシミュレート範囲として指定し、前記シミュレート範囲内のシミュレート位置に配置した前記作業対象物上の複数の作業位置を連続して通過する作業経路を含む移動経路を指定し、前記移動経路に従って前記ロボットアームを擬似的に動作させるシミュレーションを、前記シミュレート範囲内で前記作業対象物の配置位置を他のシミュレート位置に順次変えて作成した複数の移動経路それぞれについて行い、前記ロボットアームの移動時間を最も短くできる前記作業対象物の配置位置である最適位置のシミュレーション結果を少なくとも出力することによって、前記作業対象物の最適位置を決定することを特徴とする最適位置決定支援方法。 - 前記シミュレーション結果は、前記最適位置に関する位置データと、この最適位置に対応する移動経路での移動時間とを少なくとも含むことを特徴とする請求項1乃至請求項4の何れかに記載の最適位置決定支援方法。
- 前記シミュレーション結果は、前記各シミュレート位置それぞれに関する位置データと、前記各移動経路それぞれでの移動時間とを含むことを特徴とする請求項1乃至請求項5の何れかに記載の最適位置決定支援方法。
- 前記各移動経路それぞれの移動時間を、それぞれの移動経路に対応するシミュレート位置を模した並べ方で表示出力することを特徴とする請求項6記載の最適位置決定支援方法。
- 前記最適位置に関する前記シミュレーション結果を強調出力することを特徴とする請求項6又は請求項7記載の最適位置決定支援方法。
- 前記各シミュレート位置のうち、前記シミュレーションの際に最初に指定されるシミュレート位置であるシミュレート対象位置に関する前記シミュレーション結果を強調出力することを特徴とする請求項8記載の最適位置決定支援方法。
- 前記位置データは、前記各シミュレート位置のうち、前記シミュレーションの際に最初に指定されるシミュレート位置であるシミュレート対象位置からの相対距離であり、前記シミュレーション結果は、前記最適位置の座標値を更に含むことを特徴とする請求項5乃至請求項9の何れかに記載の最適位置決定支援方法。
- 前記シミュレーション結果は、前記シミュレート対象位置の座標値も更に含むことを特徴とする請求項10記載の最適位置決定支援方法。
- 前記シミュレーション結果は、前記移動経路を前記最適位置での最適移動経路に変えた場合に短縮される移動時間を更に含むことを特徴とする請求項5乃至請求項11の何れかに記載の最適位置決定支援方法。
- 前記シミュレーション結果の出力を表示装置で行うことを特徴とする請求項1乃至請求項12の何れかに記載の最適位置決定支援方法。
- 水平多関節ロボットの動作位置の配置決定により、作業対象物の最適配置を支援する最適位置決定支援装置であって、
前記水平多関節ロボットのロボットアームの移動経路を特定する第1固定位置、シミュレート位置及び第2固定位置と、前記シミュレート位置を含むシミュレート範囲とを指定する教示データを入力する入力手段と、
前記第1固定位置、前記シミュレート位置及び前記第2固定位置をこの順で通過する移動経路に従って前記ロボットを擬似的に動作させるシミュレーションを、前記シミュレート位置を前記シミュレート範囲内の他のシミュレート位置に順次変えて作成した複数の移動経路それぞれについて行う演算手段と、
前記各シミュレート位置のうち、前記ロボットアームの移動時間が最も短くなる移動経路に対応する最適位置のシミュレーション結果を少なくとも出力する出力手段と
を備えたことを特徴とする最適位置決定支援装置。 - 前記各シミュレート位置には、前記水平多関節ロボットの作業対象物の配置候補位置が指定されることを特徴とする請求項14記載の最適位置決定支援装置。
- 前記水平多関節ロボットの作業対象物の配置候補位置は、前記作業対象物上の前記ロボットアームのエンドエフェクタが作業を行う位置の候補位置であることを特徴とする請求項15記載の最適位置決定支援装置。
- ロボットアーム先端のエンドエフェクタで作業を行う水平多関節ロボットの作業対象物の最適な配置位置の決定を支援する装置であって、
シミュレート位置に配置した前記作業対象物上の複数の作業位置を連続して通過する作業経路を含む移動経路と、前記シミュレート位置を含み、前記作業対象物の配置対象領域としてのシミュレート範囲とを指定する教示データを入力する入力手段と、
前記移動経路に従って前記ロボットアームを擬似的に動作させるシミュレーションを、前記シミュレート範囲内で前記作業対象物の配置位置を他のシミュレート位置に順次変えて作成した複数の移動経路それぞれについて行う演算手段と、
少なくとも、前記ロボットアームの移動時間を最も短くできる前記作業対象物の配置位置である最適位置のシミュレーション結果を出力する出力手段と
を備えたことを特徴とする最適位置決定支援装置。 - 前記シミュレーション結果は、前記最適位置に関する位置データと、この最適位置に対応する移動経路での移動時間とを少なくとも含むことを特徴とする請求項14乃至請求項17の何れかに記載の最適位置決定支援装置。
- 前記シミュレーション結果は、前記各シミュレート位置それぞれに関する位置データと、前記各移動経路それぞれでの移動時間とを含むことを特徴とする請求項14乃至請求項18の何れかに記載の最適位置決定支援装置。
- 前記出力手段は、前記各移動経路それぞれの移動時間を、それぞれの移動経路に対応するシミュレート位置を模した並べ方で表示出力することを特徴とする請求項19記載の最適位置決定支援装置。
- 前記出力手段は、前記最適位置に関する前記シミュレーション結果を強調出力することを特徴とする請求項19又は請求項20記載の最適位置決定支援装置。
- 前記出力手段は、前記各シミュレート位置のうち、前記シミュレーションの際に最初に指定されたシミュレート位置であるシミュレート対象位置に関する前記シミュレーション結果を強調出力することを特徴とする請求項21記載の最適位置決定支援装置。
- 前記位置データは、前記各シミュレート位置のうち、前記シミュレーションの際に最初に指定されるシミュレート位置であるシミュレート対象位置からの相対距離であり、前記シミュレーション結果は、前記最適位置の座標値を更に含むことを特徴とする請求項18乃至請求項22の何れかに記載の最適位置決定支援装置。
- 前記シミュレーション結果は、前記シミュレート対象位置の座標値も更に含むことを特徴とする請求項23記載の最適位置決定支援装置。
- 前記シミュレーション結果は、前記移動経路を前記最適位置での最適移動経路に変えた場合に短縮される移動時間を更に含むことを特徴とする請求項18乃至請求項24の何れかに記載の最適位置決定支援装置。
- 前記出力手段は表示装置であることを特徴とする請求項14乃至請求項25の何れかに記載の最適位置決定支援装置。
- 請求項14乃至請求項26の何れかに記載の最適位置決定装置と、ユーザプログラムを記憶する記憶手段と、前記ユーザプログラムを構成する命令を解釈実行する解釈実行手段とを備え、前記教示データは、前記ユーザプログラムであり、該ユーザプログラムを構成する命令によって前記移動経路と、前記シミュレート範囲と、前記各シミュレート位置とが指定されており、前記解釈実行手段は、前記ユーザプログラム中に前記シミュレーションの実行を指示する命令が記述されていなかった場合、前記ロボットアームを実際に移動させる通常モードで前記移動経路に従って前記ロボットアームを移動させ、前記ユーザプログラム中に前記シミュレーションの実行を指示する命令が記述されていた場合、前記各移動経路それぞれに従って前記ロボットアームを擬似的に動作させる前記シミュレーションを行なわせることを特徴とするロボットシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002061424A JP4210065B2 (ja) | 2002-03-07 | 2002-03-07 | 最適位置決定支援方法、最適位置決定支援装置及びロボットシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002061424A JP4210065B2 (ja) | 2002-03-07 | 2002-03-07 | 最適位置決定支援方法、最適位置決定支援装置及びロボットシステム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007260991A Division JP4706684B2 (ja) | 2007-10-04 | 2007-10-04 | 作業対象物の配置決定方法、作業対象物の配置決定支援装置、作業対象物の配置決定支援プログラム及びロボットシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003260680A JP2003260680A (ja) | 2003-09-16 |
JP4210065B2 true JP4210065B2 (ja) | 2009-01-14 |
Family
ID=28670323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002061424A Expired - Fee Related JP4210065B2 (ja) | 2002-03-07 | 2002-03-07 | 最適位置決定支援方法、最適位置決定支援装置及びロボットシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4210065B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5181562B2 (ja) * | 2007-07-23 | 2013-04-10 | 株式会社Ihi | シミュレーション方法 |
JP5386921B2 (ja) * | 2008-10-09 | 2014-01-15 | セイコーエプソン株式会社 | 産業用ロボットの位置教示装置、動作プログラム作成装置、産業用ロボットの位置教示方法およびプログラム |
JP5002609B2 (ja) * | 2009-03-17 | 2012-08-15 | 株式会社東芝 | 移動マニピュレータの軌道生成システム |
JP5834515B2 (ja) * | 2011-06-14 | 2015-12-24 | マツダ株式会社 | 部品製造ラインの設計支援方法及び設計支援システム |
CN112207812A (zh) * | 2019-07-12 | 2021-01-12 | 阿里巴巴集团控股有限公司 | 设备控制方法、设备、系统及存储介质 |
-
2002
- 2002-03-07 JP JP2002061424A patent/JP4210065B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003260680A (ja) | 2003-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4441409B2 (ja) | ロボットシミュレーション装置、および、シミュレーションプログラム | |
JP5418322B2 (ja) | 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体 | |
US7945349B2 (en) | Method and a system for facilitating calibration of an off-line programmed robot cell | |
US7194396B2 (en) | Simulation device | |
US11822355B2 (en) | Programmable robot | |
JP6311421B2 (ja) | ティーチングシステム、ロボットシステムおよびティーチング方法 | |
JP2003117863A (ja) | ロボットシミュレーション装置 | |
JP2007038366A (ja) | ロボットプログラミング装置 | |
KR20140104914A (ko) | 티칭 시스템 및 티칭 방법 | |
JP2008033419A (ja) | ロボット教示用cad装置及びロボット教示方法 | |
JP4706684B2 (ja) | 作業対象物の配置決定方法、作業対象物の配置決定支援装置、作業対象物の配置決定支援プログラム及びロボットシステム | |
JPH10300457A (ja) | 測定支援システム | |
JP4210065B2 (ja) | 最適位置決定支援方法、最適位置決定支援装置及びロボットシステム | |
JPS6179589A (ja) | ロボツト運転装置 | |
KR101787865B1 (ko) | 다관절 링크 기구의 역운동학 해법, 및 이 역운동학 해법을 이용한 교시 데이터 작성 장치 | |
CN116197894A (zh) | 程序创建装置以及程序 | |
JP2009166172A (ja) | ロボットのシミュレーション方法及びロボットのシミュレーション装置 | |
JP2022190235A (ja) | 情報処理装置、情報処理方法、ロボットシステム、物品の製造方法、プログラム及び記録媒体 | |
JP5970434B2 (ja) | 教示データ作成システムおよびプログラム | |
JP2019081236A (ja) | シミュレーション装置、制御装置およびロボット | |
JP4399815B2 (ja) | ロボットの制御方法及び制御装置 | |
JP7217821B1 (ja) | ロボット教示システム | |
JP7493926B2 (ja) | 制御方法、制御装置、ロボットシステム、物品の製造方法、動作プログラム作成方法、動作プログラム作成装置、表示装置、表示装置の制御方法、プログラムおよび記録媒体 | |
JP2022135939A (ja) | 情報処理装置、ロボットシステム、物品の製造方法、情報処理方法、プログラム、及び記録媒体 | |
JP2003117864A (ja) | 多関節ロボットのティーチングデータ作成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070201 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070821 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071009 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071015 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071029 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080201 |
|
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: 20081024 |
|
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: 20111031 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131031 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |