JP2015098076A - Robot program creation method, robot program creation device, program, and recording medium - Google Patents
Robot program creation method, robot program creation device, program, and recording medium Download PDFInfo
- Publication number
- JP2015098076A JP2015098076A JP2013239866A JP2013239866A JP2015098076A JP 2015098076 A JP2015098076 A JP 2015098076A JP 2013239866 A JP2013239866 A JP 2013239866A JP 2013239866 A JP2013239866 A JP 2013239866A JP 2015098076 A JP2015098076 A JP 2015098076A
- Authority
- JP
- Japan
- Prior art keywords
- point
- robot
- interpolation
- teaching
- teaching point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、ロボットに対する命令文を組み合わせたロボットプログラムの作成中に、ロボットの動作を検証するロボットプログラム作成方法、ロボットプログラム作成装置、プログラム及び記録媒体に関する。 The present invention relates to a robot program creation method, a robot program creation device, a program, and a recording medium for verifying the operation of a robot during creation of a robot program that combines instructions for the robot.
ロボットプログラミングは、一般にロボット言語と呼ばれる言語を用いて行われている。例えばMovs P1(現在位置から教示点P1に向かって直線補間移動)などの動作命令文を組み合わせてロボットプログラムが作成される。 Robot programming is generally performed using a language called a robot language. For example, a robot program is created by combining motion commands such as Movs P1 (linear interpolation movement from the current position toward the teaching point P1).
近年では1つのワークステーションで多工程をこなすようになり、ロボットの動作軌道中に特異点や周辺機器との干渉点が発生しやすくなっている。このような中、各教示点において干渉が発生しないようにロボットプログラムを作成する方法に関して、特許文献1に示す技術が知られていた。
In recent years, it has become possible to perform a number of processes on a single workstation, and singular points and interference points with peripheral devices are likely to occur in the robot's motion trajectory. Under such circumstances, a technique disclosed in
特許文献1においては、ロボットプログラムを作成するロボットモデル及びワークモデルをディスプレイ画面に表示し、干渉チェックするか否か、ニアミスチェックするか否か、及びニアミス距離を予め設定し、ロボットモデルを第1教示点に移動させる。このときの干渉の有無を判定する。判定の結果、干渉又はニアミスが生じる場合は警告を発し、警告に従ってオペレータはロボットモデルの誘導経路等を変更する。この操作を繰返し、かつロボットの全ての教示点についてこの操作を行い、干渉がなくなった時点でプログラムを完成させる、という方法をとっていた。
In
ところで、ロボットの動作軌道は、教示点間を補間して滑らかな動きを実現している。しかしながら、上記特許文献1に記載の動作プログラム作成方法を用いてロボットプログラムを作成しようとした場合、教示点で干渉が生じるか否かのみ調べるため、教示点間の動作軌道中に干渉が生じる点が存在するか否かがわからないという問題があった。また、上記特許文献1に記載の動作プログラム作成方法では、動作軌道中に特異点となる点が存在するか否かもわからないという問題もあった。そのため、ロボットプログラムの作成終了後にシミュレーション又は実機動作確認を行った時点で軌道上に問題があることが発覚することがあり、ロボットプログラミングをし直す、いわゆる手戻りが発生する問題があった。
By the way, the motion trajectory of the robot realizes a smooth movement by interpolating between teaching points. However, when a robot program is to be created using the motion program creation method described in
そこで、本発明は、ユーザがロボットプログラムの作成中に動作軌道の修正が必要か否かを判断できるロボットプログラム作成方法、ロボットプログラム作成装置、プログラム及び記録媒体を提供することを目的とする。 Accordingly, an object of the present invention is to provide a robot program creation method, a robot program creation device, a program, and a recording medium that allow a user to determine whether or not the motion trajectory needs to be corrected during creation of the robot program.
本発明は、ロボットに対する命令文を組み合わせたロボットプログラムの作成中に、演算部が前記ロボットプログラムに従う前記ロボットの動作を検証するロボットプログラム作成方法であって、前記演算部が、前記ロボットを教示する第1教示点及び第2教示点の入力を受ける教示点入力工程と、前記演算部が、前記命令文のうち、前記第1教示点と前記第2教示点との間の動作軌道を作成する動作命令文の入力を受ける度に、前記動作軌道上の複数の補間点を算出する補間点算出工程と、前記演算部が、前記複数の補間点のうち、前記ロボットの特異点又は前記ロボットが他部材に干渉する干渉点と重なる重合補間点が存在するか否かを判断する判断工程と、を備えたことを特徴とする。 The present invention is a robot program creation method in which a computation unit verifies the operation of the robot according to the robot program during creation of a robot program that combines instructions for the robot, and the computation unit teaches the robot A teaching point input process that receives input of the first teaching point and the second teaching point, and the calculation unit creates an operation trajectory between the first teaching point and the second teaching point in the command statement. An interpolation point calculation step of calculating a plurality of interpolation points on the movement trajectory each time an operation command statement is input, and the calculation unit includes the singular point of the robot or the robot among the plurality of interpolation points. And a determination step of determining whether or not there is a superposition interpolation point that overlaps an interference point that interferes with another member.
本発明によれば、ユーザがロボットプログラムの作成中に動作軌道の修正が必要か否かを判断できるので、手戻りの少ない好適なロボットプログラムの作成が可能となる。 According to the present invention, since the user can determine whether or not the motion trajectory needs to be corrected during the creation of the robot program, it is possible to create a suitable robot program with little rework.
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。 Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
[第1実施形態]
図1は、本発明の第1実施形態に係るロボットシステムの概略構成を示す説明図である。ロボットシステム100は、垂直多関節のロボット200と、ロボットコントローラである制御装置300と、ロボットプログラム作成装置400と、を備えている。
[First Embodiment]
FIG. 1 is an explanatory diagram showing a schematic configuration of the robot system according to the first embodiment of the present invention. The
ロボット200は、多軸(例えば6軸)のロボットアーム201と、ロボットアーム201の先端に取り付けられたグリッパ状のロボットハンド等のエンドエフェクタ202と、を有しており、電力線及び通信線で制御装置300に接続されている。制御装置300は通信線を介してロボットプログラム作成装置400に接続されている。
The
ロボット200のエンドエフェクタ202の代表点として、ツールセンターポイント(TCP)203が、グリッパの把持中心に設定されている。
As a representative point of the
ロボットプログラム作成装置400を用いることにより、ユーザがロボット言語で記述された命令文や制御文からなるテキスト形式のロボットプログラムを作成する。その際、ロボットプログラム作成装置400は、ロボットプログラムの作成中に、命令文中の動作命令文に基づき、ロボット200の動作をシミュレートするものである。
By using the robot
図2は、本発明の第1実施形態に係るロボットプログラム作成装置400を示すブロック図である。ロボットプログラム作成装置400は、装置本体411と、装置本体411に接続された入出力装置421,422,423とからなる。
FIG. 2 is a block diagram showing the robot
装置本体411は、演算部としてのCPU(Central Processing Unit)401を備えている。また、装置本体411は、記憶部として、ROM(Read Only Memory)402、RAM(Random Access Memory)403、HDD(Hard Disk Drive)404を備えている。また、装置本体411は、記録ディスクドライブ405及び各種のインタフェース406〜409を備えている。
The apparatus
CPU401には、ROM402、ROM403、HDD404、記録ディスクドライブ405及び各種のインタフェース406〜409が、バス410を介して接続されている。ROM402には、BIOS等の基本プログラムが格納されている。RAM403は、CPU401の演算処理結果等、各種データを一時的に記憶する記憶装置である。
A
HDD404は、CPU401の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU401に、後述する各種演算処理を実行させるためのプログラム(ロボットプログラム作成プログラム)430を記録するものである。CPU401は、HDD404に記録(格納)されたプログラム430に基づいてロボットプログラム作成方法の各工程を実行する。
The
記録ディスクドライブ405は、記録ディスク431に記録された各種データやプログラム等を読み出すことができる。
The
教示部である教示装置(ティーチングペンダント)421は、インタフェース406に接続されている。ティーチングペンダント421は、ユーザの入力操作により、ロボット200を教示する教示点を指定するものである。教示点のデータは、インタフェース406及びバス410を通じてCPU401又はHDD404に出力される。つまり、CPU401は、ティーチングペンダント421又はHDD404から教示点のデータの入力を受ける。
A teaching device (teaching pendant) 421 serving as a teaching unit is connected to the interface 406. The
表示部である表示装置(モニタ)422は、インタフェース407に接続されており、CPU401の制御の下、画像データを表示する。
A display device (monitor) 422 serving as a display unit is connected to the interface 407 and displays image data under the control of the
ロボット200に対する命令文を組み合わせたロボットプログラムの入力操作が可能な操作部である操作装置(キーボード)423は、インタフェース408に接続されている。ユーザがキーボード423をキー入力操作することで、キーボード423からはユーザの操作に応じた信号がCPU401に出力される。具体的には、ユーザがキーボード423に命令文や制御文を打ち込むことで、キーボード423からは命令文や制御文のデータがCPU401に出力される。これにより、CPU401は、キーボード423から命令文又は制御文の入力を受ける。なお、ロボットプログラム作成装置400は、操作部としてマウスを備えていてもよい。
An operation device (keyboard) 423, which is an operation unit capable of inputting a robot program that combines commands for the
インタフェース409には、制御装置300が接続されており、制御装置300と通信可能となっている。
A
図3は、本発明の第1実施形態に係る制御装置300及びロボットプログラム作成装置400を示す概要図である。
FIG. 3 is a schematic diagram showing the
ロボットプログラム作成装置400において、記憶部として例えばHDD404には、ロボット200や他部材(例えば不図示のワーク)の位置関係を表すメカ情報701や教示点情報702が格納されている。また、HDD404には、ロボット200の形状やロボット200の周辺に配置された他部材の形状を表現するポリゴン情報703が格納されている。
In the robot
また、ロボットプログラム作成装置400において、演算部としてのCPU401がプログラム430を実行することにより、逆運動学計算モジュール705及び教示点間補間モジュール706として機能する。
In the robot
ここで、教示点とは、ロボット200に動作・姿勢・手順を教えるために必要となる点のことであり、通常エンドエフェクタ202の代表点203をそこに位置決めする点のことである。
Here, the teaching point is a point that is necessary for teaching the
逆運動学計算モジュール705は、設定された教示点に代表点203を位置決めするときのロボット200の各軸への指令を計算する。教示点間補間モジュール706は、動作命令に従って教示点の間に補間点を計算する。例えば動作命令が直線補間命令であった場合は、動作の開始位置となる教示点から動作の終了位置となる教示点の間に直線上に分割点が並ぶように、教示点間を均等に分割し、この分割点が補間点となる。
The inverse
ロボット言語としては、標準規格のSLIM準拠の文法を用いている。メカ情報701や教示点情報702、またロボットプログラム作成装置400で作成されたロボットプログラム(不図示)は、通信線607を介して制御装置300に転送され、ロボット200の制御に用いられる。
As a robot language, a standard SLIM-compliant grammar is used. The
制御装置300は、ロボット制御モジュール704や、ロボットプログラム作成装置400と同様、逆運動学計算モジュール705及び教示点間補間モジュール706を備える。ロボット制御モジュール704は、ロボットプログラム(不図示)を解釈し、ロボット200の各軸に指令を与えてロボット200を制御する。
Similar to the
第1実施形態においては、ロボットプログラムの作成の前に、CPU401は、ティーチングペンダント421又はHDD404から教示点のデータの入力を受ける(教示点入力工程)。そして、CPU401は、教示点の設定に先立って、教示点が、特異点又はロボット200が他部材に干渉する点(干渉点)に位置するか否かを判断する。
In the first embodiment, before creating a robot program, the
図4は、ワールド座標系Σ1において教示点を設定した状態を示す模式図である。図4においては、教示点P0,P1,P2,P3が設定され、代表点203が教示点P0に位置決めされている様子が示されている。
FIG. 4 is a schematic diagram showing a state where teaching points are set in the world coordinate system Σ1. In FIG. 4, the teaching points P0, P1, P2, and P3 are set, and the
CPU401は、教示点P0,P1,P2,P3を設定する際に教示点そのものが特異点でないことをチェックし、また干渉点でないことをチェックすれば、教示点自体が特異点や干渉点でないことは保証される。
When setting the teaching points P0, P1, P2, and P3, the
なお、特異点とは特異姿勢とも呼ばれ、ある関節速度に理論上無限大の速度が求められる姿勢を意味し、ロボット200の軌道において避けなければならない点のことである。特異点チェックは、各教示点について逆運動学を解き、各関節角度を求めることで特異姿勢か否かがわかる。
The singular point is also called a singular posture, which means a posture where a theoretically infinite speed is required for a certain joint speed, and is a point that must be avoided in the trajectory of the
干渉点チェックについても同様に各関節角度を求めれば、ワールド座標系Σ1においてメカ情報701及びポリゴン情報703を用いて、ロボット200や治具(他部材)を表現するポリゴン同士の当たり判定(距離チェック)を行うことができる。
Similarly, in the interference point check, if each joint angle is obtained, contact determination between polygons representing the
第1実施形態では、ロボット200に対する命令文を組み合わせた、ロボット言語で記述されるロボットプログラムの作成中に、CPU401がロボットプログラムに従うロボット200の動作を検証する。
In the first embodiment, the
以下、第1実施形態のロボットプログラム作成方法について、図5のフローチャートに基づいて説明する。ロボット200の動作としては、エンドエフェクタ202が教示点P0に位置決めされた状態でワーク(不図示)を把持し、教示点P1、教示点P2、教示点P3の順に移動して教示点P3でワーク(不図示)を離す動作を想定する。なお、第1実施形態においてはこれらの教示点はロボットプログラム入力前に設定済みでありかつ特異点チェック及び干渉点チェックをクリアしているものとする。
Hereinafter, the robot program creation method of the first embodiment will be described based on the flowchart of FIG. The operation of the
まず、ロボットプログラム入力前に、CPU401は、複数の教示点を設定する(S1)。このとき、教示点は、特異点や干渉点にならないように設定される。また、CPU401は、動作の始点(例えば教示点P0)を記憶部に記憶させる。
First, before inputting the robot program, the
次に、CPU401は、ロボットプログラムの入力が終了したか否かを判断する(S2)。プログラムの入力を終了するか否かは、ユーザがキーボード423等を使用して入力する。つまり、CPU401は、ユーザの入力操作に応じて、ロボットプログラムの入力が終了したか否かを判断する。CPU401は、ロボットプログラムの入力が終了したと判断した場合(S2:Yes)は、終了状態に遷移し、ロボットプログラムの入力が終了していないと判断した場合(S2:No)は、次のステップS3に遷移する。
Next, the
CPU401は、ユーザがロボットプログラムを構成する命令文や制御文を、キーボード423を用いて入力したり編集したりした場合に、その入力を受ける(S3)。命令文は、動作命令を示す動作命令文やI/O命令を示すI/O命令文などからなる。
The
次に、CPU401は、ステップS3で入力・編集した命令文が動作命令文か否かを判断する(S4)。動作命令文は、例えば、Movs P1(始点(第1教示点)P0から終点(第2教示点)P1に向かって直線補間移動)や、Mov P1(始点P0から終点P1に向ってPTP補間移動)、のようなロボット言語の構文を持っている。
Next, the
ここで、始点とは現在ロボット200が移動している教示点を意味し、終点とは次にロボット200が移動する教示点を意味する。なお、ロボットプログラム作成段階ではロボット200は移動しないので、仮想的に移動する場合を想定している。
Here, the start point means a teaching point where the
動作命令文には、動作軌道を作成する補間方法(直線補間やPTP補間等)を指定する命令が含まれている。動作命令文であれば、次のステップS5に遷移し、動作命令文でなければ始点を更新せずにステップS2に遷移する。 The motion command statement includes a command for designating an interpolation method (such as linear interpolation or PTP interpolation) for creating a motion trajectory. If it is an operation command statement, the process proceeds to the next step S5, and if it is not an operation command statement, the start point is not updated and the process proceeds to step S2.
ステップS5において、CPU401は、動作命令文の入力を受ける度に、現在記憶している始点(例えば教示点P0)と、動作命令文に記述された終点(例えば教示点P1)との間の動作軌道を生成する。そして、CPU401は、動作軌道上の複数の補間点を算出する(補間点算出工程)。これら補間点は、教示点P1,P2間を所定の分割数で等分割(例えば2[ms]間隔で分割)して計算する。
In step S5, every time the
次に、CPU401は、複数の補間点のうち、ロボット200の特異点又は干渉点と重なる(一致する)補間点(以下、「重合補間点」という)が存在するか否かを判断する(S6:判断工程)。つまり、補間点に特異点や干渉点が存在するか否かを判断する。このように、ステップS6では、複数の補間点の各点について、特異点であるか、干渉点であるかをチェックする(特異点チェック及び干渉点チェック)。
Next, the
CPU401は、ステップS6における判断結果をユーザに報知(提示)する(S7、S8:判断結果報知工程)。具体的には、CPU401は、モニタ422に判断結果を表示させる。つまり、CPU401は、重合補間点が存在すると判断した場合(S6:Yes)は、その旨をモニタ422に表示させ(S7)、重合補間点が存在しないと判断した場合(S6:No)は、その旨をモニタ422に表示させる(S8)。
The
即ち、複数の補間点のなかに特異点又は干渉点が存在すればYesであるのでステップS7に遷移する。複数の補間点のなかに特異点及び干渉点のいずれも存在しなければNoであるので、動作命令に記述された終点(例えば教示点P1)を新たな始点としてHDD404等の記憶部に記憶させ、ステップS2に遷移する。なお、ステップS6でNoの場合は、ステップS8を省略して、ステップS2に遷移しても構わない。
That is, if there is a singular point or an interference point among the plurality of interpolation points, it is Yes and the process proceeds to step S7. If neither the singular point nor the interference point exists among the plurality of interpolation points, the result is No. Therefore, the end point (for example, the teaching point P1) described in the operation command is stored in the storage unit such as the
ステップS6にてYesであれば、補間点の中に特異点や干渉点が存在したことをユーザに提示する。提示の方法としては、該当行をハイライト表示したり、ポップアップによって表示したりしてもよい。チェック結果を提示した後に、終了状態に遷移する。 If Yes in step S6, the user is notified that there are singular points and interference points among the interpolation points. As a presentation method, the corresponding line may be highlighted or displayed by a pop-up. After presenting the check result, transition to the end state.
また、ステップS6にてNoであれば、補間点の中に特異点及び干渉点が存在しないことをユーザに提示する。提示の方法としては、「OK」などを表示する。 If No in step S6, the user is notified that there are no singular points and interference points among the interpolation points. As a presentation method, “OK” or the like is displayed.
図6は、プログラム430がインストールされたロボットプログラム作成装置400を示す図であり、図6(a)は、プログラム430起動前の状態を示し、図6(b)は、プログラム430を起動してユーザが入力操作をしている状態を示している。
6A and 6B are diagrams showing the robot
図6(a)に示すアイコン群I1〜I4のなかから適切なアイコン(例えばアイコンI1)をカーソルCで選択(例えばマウスのボタンをワンクリックやダブルクリック)することで、プログラム430が起動し、ウィンドウが立ち上がる。
By selecting an appropriate icon (for example, icon I1) from among the icon groups I1 to I4 shown in FIG. 6A with the cursor C (for example, one-clicking or double-clicking a mouse button), the
図6(b)において、ウィンドウ内左端の数字はロボットプログラムの行番号を意味している。行番号1では現在の教示点(第1教示点)P0から次の教示点(第2教示点)P1へ直線補間移動せよ、という移動命令文「Movs P1」が記述されている。ユーザが当該記述をキーボード423を用いて行い、実行キー(例えばEnterキー)を操作したときに、装置本体411内部のCPU401が、軌道演算して特異点チェック及び干渉点チェックを行う。その結果、問題がなかったのでモニタ422に「OK」の表示がなされている。
In FIG. 6B, the number at the left end in the window means the line number of the robot program. In
行番号2ではI/O命令文(つまり、動作命令ではない)「Out」が記述されているので、チェックは行われない。行番号3では、行番号1と同様である。行番号4では、現在の教示点(第1教示点)P2から次の教示点(第2教示点)P3へ直線補間移動せよ、という命令文「Movs P3」が記述される。そして、CPU401で特異点及び干渉点チェックが行われた結果、補間点が重なるため「NG」の表示がなされている。このように、移動命令文1行ごとに動作軌道を生成して補間点を算出し、各補間点が特異点又は干渉点と重なり合うか否かを判断する。
In
以上、第1実施形態によれば、ユーザがロボットプログラムの作成中に動作軌道の修正が必要か否かを判断できるので、手戻りの少ない好適なロボットプログラムの作成が可能となる。 As described above, according to the first embodiment, since the user can determine whether or not the motion trajectory needs to be corrected while creating the robot program, it is possible to create a suitable robot program with little rework.
また、補間点の中に特異点や干渉点が生じた場合に、モニタ422でユーザに提示(報知)するので、実機動作確認前に、特異点や干渉点によるエラーを避けることができる。
Further, when a singular point or an interference point is generated in the interpolation point, it is presented (notified) to the user on the
[第2実施形態]
次に、本発明の第2実施形態に係るロボットプログラム作成装置による処理動作について説明する。図7は、本発明に係る第2実施形態のロボットプログラム作成方法を示すフローチャートである。なお、ロボットプログラム作成装置の各部の構成は、上記第1実施形態の図2で説明した構成と同様であり、詳細な説明は省略する。第2実施形態において、上記第1実施形態と異なるのは、演算部であるCPU401を用いたロボットプログラム作成方法、即ちプログラム430の内容が異なるものであり、以下、上記第1実施形態と異なる部分について説明する。
[Second Embodiment]
Next, processing operations performed by the robot program creation device according to the second embodiment of the present invention will be described. FIG. 7 is a flowchart showing a robot program creation method according to the second embodiment of the present invention. The configuration of each part of the robot program creation device is the same as the configuration described in FIG. 2 of the first embodiment, and a detailed description thereof is omitted. In the second embodiment, the difference from the first embodiment is that the robot program creation method using the
図7のステップS11〜S18は、図5のステップS1〜S8と同様であるため、説明を省略する。なお、ステップS17の処理は省略してもよい。 Steps S11 to S18 in FIG. 7 are the same as steps S1 to S8 in FIG. Note that the process of step S17 may be omitted.
CPU401は、ステップS16にて補間点に特異点又は干渉点が存在すると判断した場合(S16:Yes)、補間点の中に特異点や干渉点が存在する旨をユーザに警告し、別の補間方法を指定するようユーザに提示する(S19:補間方法提示工程)。
If the
例えばCPU401は、動作命令としてPTP補間を使用していて警告を出した場合、ユーザに対して直線補間による補間方法を試すよう提案する。警告の方法としては、モニタ422において、該当行をハイライト表示したり、ポップアップによって表示したりしても良い。
For example, if the
次に、CPU401は、ユーザがロボットプログラムの入力を終了したか否かを判断する(S20)。例えばCPU401は、PTP補間命令を使用して警告を出した後に、まだ直線補間命令を試していない場合などは、入力を終了していないと判断する(S20:No)。また例えばCPU401は、PTP補間命令を使用して警告を出した後に、直線補間命令を使用しても再度警告が出た場合などは、補間方法の変更では特異点・干渉点の回避は不可能であると判断して、入力終了と判断し(S20:Yes)、終了状態に遷移する。
Next, the
CPU401は、別の補間方法をユーザに提示した後、ユーザが別の補間方法を指定するのを待ち受け(S21)、ユーザにより別の補間方法が指定されたら、ステップS15に遷移する。
After presenting another interpolation method to the user, the
このように第2実施形態によれば、代替の補間方法をユーザに提示することで、ユーザは、別の補間方法を試すべきことを迷わずに実行できる、という効果を奏する。 Thus, according to the second embodiment, by presenting an alternative interpolation method to the user, there is an effect that the user can execute without hesitation that another interpolation method should be tried.
[第3実施形態]
次に、本発明の第3実施形態に係るロボットプログラム作成装置による処理動作について説明する。図8は、本発明に係る第3実施形態のロボットプログラム作成方法を示すフローチャートである。なお、ロボットプログラム作成装置の各部の構成は、上記第1実施形態の図2で説明した構成と同様であり、詳細な説明は省略する。第3実施形態において、上記第1、第2実施形態と異なるのは、演算部であるCPU401を用いたロボットプログラム作成方法、即ちプログラム430の内容が異なるものであり、以下、上記第1、第2実施形態と異なる部分について説明する。
[Third Embodiment]
Next, processing operations by the robot program creation device according to the third embodiment of the present invention will be described. FIG. 8 is a flowchart showing a robot program creation method according to the third embodiment of the present invention. The configuration of each part of the robot program creation device is the same as the configuration described in FIG. 2 of the first embodiment, and a detailed description thereof is omitted. The third embodiment is different from the first and second embodiments in the robot program creation method using the
図8のステップS31〜S33は、図5のステップS1〜S3と同様であるため、説明を省略する。 Steps S31 to S33 in FIG. 8 are the same as steps S1 to S3 in FIG.
ステップS33の後、CPU401は、入力を受けたのが動作命令文であるか否かを判断する(S34)。このとき、動作命令文としては、上記第1、第2実施形態では、補間方法を指定する命令が含まれていたが、第3実施形態では、動作命令文に補間方法を指定する命令が含まれている必要はない。
After step S33, the
CPU401は、動作命令文ではない場合(S34:No)、ステップS32に遷移する。CPU401は、動作命令文である場合(S34:Yes)、互いに異なる複数の補間方法で始点(第1教示点)と終点(第2教示点)との間の動作軌道を複数生成し、各動作軌道に対して複数の補間点を算出する(S35:補間点算出工程)。例えばCPU401は、PTP補間と直線補間の双方で教示点間の補間を行う。
If the
次に、CPU401は、各動作軌道における各補間点の特異点チェック及び干渉点チェックを行う(S36:判断工程)。その結果、どちらか一方の補間方法を用いた場合に補間点のなかに特異点や干渉点が存在し、他方の補間方法を用いた場合には特異点や干渉点は存在しなかったとする。
Next, the
次に、CPU401は、ステップS36でのチェック結果をユーザに提示する(S37:動作軌道提示工程)。具体的には、CPU401は、ステップS36における判断の結果、複数の動作軌道のうち、特異点又は干渉点に重なる重合補間点がない動作軌道を、モニタ422に表示してユーザに提示する。
Next, the
次に、CPU401は、ユーザによる補間方法の選択を待ち受けて、ユーザにより補間方法が選択されたら、補間方法を確定し、ステップS32の処理に遷移する(S38)。
Next, the
以上第3実施形態によれば、ユーザは動作命令文において補間方法を予め指定しなくても、補間点の特異点チェック及び干渉点チェック済みの補間方法、即ち特異点及び干渉点に重ならない動作軌道を選ぶことができるので、さらに工数削減が可能となる。 As described above, according to the third embodiment, even if the user does not specify the interpolation method in the operation command sentence in advance, the interpolation method with the singular point check of the interpolation point and the interference point checked, that is, the operation not overlapping the singular point and the interference point Since the trajectory can be selected, man-hours can be further reduced.
[第4実施形態]
次に、本発明の第4実施形態に係るロボットプログラム作成装置による処理動作について説明する。図9は、本発明に係る第4実施形態のロボットプログラム作成方法を示すフローチャートである。なお、ロボットプログラム作成装置の各部の構成は、上記第1実施形態の図2で説明した構成と同様であり、詳細な説明は省略する。第4実施形態において、上記第1〜第3実施形態と異なるのは、演算部であるCPU401を用いたロボットプログラム作成方法、即ちプログラム430の内容が異なるものであり、以下、上記第1〜第3実施形態と異なる部分について説明する。
[Fourth Embodiment]
Next, a processing operation by the robot program creation device according to the fourth embodiment of the present invention will be described. FIG. 9 is a flowchart showing a robot program creation method according to the fourth embodiment of the present invention. The configuration of each part of the robot program creation device is the same as the configuration described in FIG. 2 of the first embodiment, and a detailed description thereof is omitted. In the fourth embodiment, the difference from the first to third embodiments is a robot program creation method using the
図9のステップS41〜S46は、図8のステップS31〜S36と同様であるため、説明を省略する。なお、ステップS46の判断の結果、いずれの補間方法を用いても、補間点の中に特異点又は干渉点が存在したとする。 Steps S41 to S46 in FIG. 9 are the same as steps S31 to S36 in FIG. As a result of the determination in step S46, it is assumed that a singular point or an interference point exists in the interpolation point regardless of which interpolation method is used.
CPU401は、ステップS46において重合補間点が存在すると判断した場合、終点(第2教示点)の修正をユーザに促す(S47:教示点修正工程)。或いは、CPU401は、ステップS46において重合補間点が存在すると判断した場合、始点(第1教示点)と終点(第2教示点)との間に中間教示点を追加するのをユーザに促す(S47:教示点追加工程)。つまり、いずれの補間方法を用いても、補間点の中に特異点や干渉点が存在したことをユーザに警告し、終点の修正・追加をユーザに促す。警告の方法としては、該当行をハイライト表示したり、ポップアップによって表示したりしても良い。
When the
CPU401は、ユーザによる教示点の修正(例えば教示点P1の位置を修正)や、追加(例えば教示点P1近傍に教示点P4を追加)を行い、ステップS42の処理に遷移する。教示点の修正・追加の際には特異点チェック、干渉点チェックが行われる。つまり、CPU401は、ユーザがステップS47により促されて終点(第2教示点)を修正した場合、ステップS45では、CPU401が再度、複数の補間点を算出し、ステップS46では、CPU401が再度、重合補間点が存在するか否かを判断する。
The
或いは、CPU401は、ステップS47により促されて中間教示点が追加された場合、ステップS45では、中間教示点を新たな終点(第2教示点)とし、始点(第1教示点)と終点との間の動作軌道を生成して該動作軌道上の複数の補間点を算出する。そして、CPU401は、ステップS46では、再度、重合補間点が存在するか否かを判断する。
Alternatively, when an intermediate teaching point is added in response to the prompt in step S47, the
このように第4実施形態によれば、ユーザは教示点の修正・追加が必要であることを即座に知ることができるので、さらに工数削減が可能となる、という効果を奏する。 As described above, according to the fourth embodiment, since the user can immediately know that the correction / addition of the teaching point is necessary, the man-hour can be further reduced.
[第5実施形態]
次に、本発明の第5実施形態に係るロボットプログラム作成装置による処理動作について説明する。図10は、本発明に係る第5実施形態のロボットプログラム作成方法を示すフローチャートである。なお、ロボットプログラム作成装置の各部の構成は、上記第1実施形態の図2で説明した構成と同様であり、詳細な説明は省略する。第5実施形態において、上記第1〜第4実施形態と異なるのは、演算部であるCPU401を用いたロボットプログラム作成方法、即ちプログラム430の内容が異なるものであり、以下、上記第1〜第4実施形態と異なる部分について説明する。
[Fifth Embodiment]
Next, a processing operation by the robot program creation device according to the fifth embodiment of the present invention will be described. FIG. 10 is a flowchart showing a robot program creation method according to the fifth embodiment of the present invention. The configuration of each part of the robot program creation device is the same as the configuration described in FIG. 2 of the first embodiment, and a detailed description thereof is omitted. In the fifth embodiment, the difference from the first to fourth embodiments is that the robot program creation method using the
第5実施形態では、ロボットプログラム作成前に教示点を設定せず、若しくは特異点チェック、干渉チェックを実施せずに教示点を設定しておき、プログラミングを進めながら教示点を設定・修正するという点において上記第1実施形態とは異なる。ただし、初期位置である教示点P0のみは設定済みとする。おおまかな流れは上記第1実施形態と同様であるので、差異のある部分について図10を用いて説明する。 In the fifth embodiment, a teaching point is not set before creating a robot program, or a teaching point is set without performing a singular point check and an interference check, and the teaching point is set and corrected while advancing programming. This is different from the first embodiment in that respect. However, only the teaching point P0 which is the initial position is set. Since the general flow is the same as that in the first embodiment, the difference will be described with reference to FIG.
図10のステップS51〜S53は、図5のステップS2〜S4と同様であり、図10のステップS55〜S57は、図5のステップS5〜S7と同様であるため、説明を省略する。 Steps S51 to S53 in FIG. 10 are the same as steps S2 to S4 in FIG. 5, and steps S55 to S57 in FIG. 10 are the same as steps S5 to S7 in FIG.
ここで、ステップS53までは、ロボットプログラムにおける終点(第2教示点)は、変数として定義され、数値データは入力されておらず、ステップS54で数値データが設定される。即ち、CPU401は、ユーザがティーチングペンダント421を操作して、ティーチングペンダント421からの終点となる教示点のデータの入力を受け、終点となる教示点(例えば教示点P1)を設定する(S54:教示点入力工程)。このとき、特異点チェック、干渉点チェックが行われ、特異点、干渉点でないように教示点を設定する。なお、CPU401は、ティーチングペンダント421からの入力を受け、第1教示点としての最初の教示点P0も、教示点P1に先立って設定する。また、始点(第1教示点)を教示点P1に更新する場合は、終点(第2教示点)である教示点P2のみを設定すればよい。
Here, until step S53, the end point (second teaching point) in the robot program is defined as a variable, no numerical data is input, and numerical data is set in step S54. That is, the
教示点間の補間点が特異点又は干渉点である場合、CPU401は、終点(第2教示点)の修正をユーザに促す(S57:教示点修正工程)。具体的には、CPU401は、チェック結果として、重合補間点が存在する、即ち複数の補間点のうち特異点又は干渉点に重なる補間点が存在する旨をモニタ422に表示させる。
When the interpolation point between the teaching points is a singular point or an interference point, the
次に、CPU401は、ロボットプログラムの入力を終了するか否かを判断する(S58)。
Next, the
CPU401は、教示点を何度修正しても補間点に特異点や干渉点が発生してしまうような場合にはユーザの選択により、入力を終了し(S58:Yes)、終了状態に遷移する。教示点を修正する場合には、ユーザの選択により入力を終了せず(S58:No)、ステップS59に遷移する。
If the singular point or the interference point occurs at the interpolation point regardless of how many times the teaching point is corrected, the
次に、CPU401は、ユーザによる教示点の修正を待ち受けて、ユーザにより教示点が修正されたら、修正を確定し、ステップS55の処理に遷移する(S59)。教示点の修正の際には特異点チェック、干渉点チェックが行われる。
Next, the
このように第5実施形態によれば、ロボットプログラム作成と同時に教示点を設定していくので、無駄な教示点を設定することなく手戻りのないプログラミングが可能となる。 As described above, according to the fifth embodiment, the teaching point is set simultaneously with the creation of the robot program. Therefore, programming without reworking is possible without setting a useless teaching point.
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。 The present invention is not limited to the embodiment described above, and many modifications are possible within the technical idea of the present invention.
上記実施形態では、ロボットプログラム作成装置が、制御装置300とは別の装置である場合について説明したが、これに限定するものではなく、制御装置300がロボットプログラム作成装置を兼ねてもよい。
In the above embodiment, the case where the robot program creation device is a device different from the
また、上記実施形態では、ティーチングペンダント421を用いて教示点の入力を行う場合について説明したが、他の入力装置(操作装置)、例えばキーボード423を用いて教示点の入力を行うようにしてもよい。
In the above embodiment, the teaching point is input using the
また、上記実施形態の各処理動作は具体的には演算部としてのCPU401により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を装置本体411に供給し、装置本体411のコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
Further, each processing operation of the above-described embodiment is specifically executed by the
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がHDD404であり、HDD404にプログラム430が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図2に示すROM402、記録ディスク431、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、書き換え可能な不揮発性のメモリ(例えばUSBメモリ)、ROM等を用いることができる。
In the above embodiment, the computer-readable recording medium is the
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。 Further, the program in the above embodiment may be downloaded via a network and executed by a computer.
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。 Further, the present invention is not limited to the implementation of the functions of the above-described embodiment by executing the program code read by the computer. This includes a case where an OS (operating system) or the like running on the computer performs part or all of the actual processing based on the instruction of the program code, and the functions of the above-described embodiments are realized by the processing. .
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。 Furthermore, the program code read from the recording medium may be written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer. This includes a case where the CPU of the function expansion board or function expansion unit performs part or all of the actual processing based on the instruction of the program code, and the functions of the above embodiments are realized by the processing.
また、上記実施形態では、コンピュータがHDD等の記録媒体に記録されたプログラムを実行することにより、画像処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をASICやFPGA等の専用LSIで構成してもよい。なお、ASICはApplication Specific Integrated Circuit、FPGAはField-Programmable Gate Arrayの頭字語である。 Moreover, although the said embodiment demonstrated the case where a computer performed an image process by running the program recorded on recording media, such as HDD, it is not limited to this. A part or all of the functions of the arithmetic unit that operates based on the program may be configured by a dedicated LSI such as an ASIC or FPGA. Note that ASIC is an acronym for Application Specific Integrated Circuit, and FPGA is an acronym for Field-Programmable Gate Array.
100…ロボットシステム、200…ロボット、400…ロボットプログラム作成装置、401…CPU(演算部)、421…ティーチングペンダント(教示部)
DESCRIPTION OF
Claims (13)
前記演算部が、前記ロボットを教示する第1教示点及び第2教示点の入力を受ける教示点入力工程と、
前記演算部が、前記命令文のうち、前記第1教示点と前記第2教示点との間の動作軌道を作成する動作命令文の入力を受ける度に、前記動作軌道上の複数の補間点を算出する補間点算出工程と、
前記演算部が、前記複数の補間点のうち、前記ロボットの特異点又は前記ロボットが他部材に干渉する干渉点と重なる重合補間点が存在するか否かを判断する判断工程と、を備えたことを特徴とするロボットプログラム作成方法。 A robot program creation method for verifying an operation of the robot according to the robot program during creation of a robot program combining instructions for the robot,
A teaching point input step in which the arithmetic unit receives inputs of a first teaching point and a second teaching point that teach the robot;
A plurality of interpolation points on the motion trajectory each time the arithmetic unit receives an input of an motion command statement that creates an motion trajectory between the first teaching point and the second teaching point, of the command text. An interpolation point calculating step for calculating
The calculation unit includes a determination step of determining whether there is a superposition interpolation point that overlaps a singular point of the robot or an interference point at which the robot interferes with another member among the plurality of interpolation points. A robot program creation method characterized by the above.
前記補間点算出工程では、前記演算部が、前記動作命令文により指定された補間方法で前記第1教示点と前記第2教示点との間の前記動作軌道を生成し、前記複数の補間点を算出することを特徴とする請求項1又は2に記載のロボットプログラム作成方法。 The motion command statement includes a command for specifying an interpolation method for creating the motion trajectory,
In the interpolation point calculation step, the calculation unit generates the motion trajectory between the first teaching point and the second teaching point by an interpolation method specified by the motion command statement, and the plurality of interpolation points The robot program creation method according to claim 1 or 2, characterized in that:
前記ロボットに対する命令文を組み合わせたロボットプログラムの入力操作が可能な操作部と、
前記操作部から前記ロボットプログラムの入力を受け、前記ロボットプログラムに従う前記ロボットの動作を検証する演算部と、を備え、
前記演算部は、
前記命令文のうち、前記第1教示点と前記第2教示点との間の動作軌道を作成する動作命令文の入力を受ける度に、前記動作軌道上の複数の補間点を算出し、
前記複数の補間点のうち、前記ロボットの特異点又は前記ロボットが他部材に干渉する干渉点と重なる重合補間点が存在するか否かを判断する、ことを特徴とするロボットプログラム作成装置。 A teaching unit capable of inputting a first teaching point and a second teaching point to be taught to the robot;
An operation unit capable of input operation of a robot program that combines instructions for the robot;
A calculation unit that receives the input of the robot program from the operation unit and verifies the operation of the robot according to the robot program;
The computing unit is
A plurality of interpolation points on the operation trajectory are calculated each time an operation command statement for creating an operation trajectory between the first teaching point and the second teaching point is received.
An apparatus for creating a robot program, comprising: determining whether there is a superposition interpolation point that overlaps a singular point of the robot or an interference point at which the robot interferes with another member among the plurality of interpolation points.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013239866A JP2015098076A (en) | 2013-11-20 | 2013-11-20 | Robot program creation method, robot program creation device, program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013239866A JP2015098076A (en) | 2013-11-20 | 2013-11-20 | Robot program creation method, robot program creation device, program, and recording medium |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015098076A true JP2015098076A (en) | 2015-05-28 |
Family
ID=53375062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013239866A Pending JP2015098076A (en) | 2013-11-20 | 2013-11-20 | Robot program creation method, robot program creation device, program, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015098076A (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018144223A (en) * | 2017-03-06 | 2018-09-20 | キヤノン株式会社 | Teaching method for teaching motion to plurality of robots and teaching device to be used in the same |
CN109834706A (en) * | 2017-11-25 | 2019-06-04 | 梅卡曼德(北京)机器人科技有限公司 | The method and device of kinematicsingularities is avoided in robot motion planning |
CN110977932A (en) * | 2018-10-03 | 2020-04-10 | 发那科株式会社 | Robot teaching device, robot teaching method, and method for storing operation command |
US10919153B2 (en) | 2017-03-06 | 2021-02-16 | Canon Kabushiki Kaisha | Teaching method for teaching operations to a plurality of robots and teaching system used therefor |
WO2021241398A1 (en) * | 2020-05-25 | 2021-12-02 | ファナック株式会社 | Offline teaching device and motion program generation method |
WO2023162225A1 (en) * | 2022-02-28 | 2023-08-31 | ファナック株式会社 | Robot control device and multijoint robot |
JP7421155B1 (en) | 2023-09-29 | 2024-01-24 | 株式会社不二越 | Robot teaching system and teaching method |
-
2013
- 2013-11-20 JP JP2013239866A patent/JP2015098076A/en active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018144223A (en) * | 2017-03-06 | 2018-09-20 | キヤノン株式会社 | Teaching method for teaching motion to plurality of robots and teaching device to be used in the same |
US10919153B2 (en) | 2017-03-06 | 2021-02-16 | Canon Kabushiki Kaisha | Teaching method for teaching operations to a plurality of robots and teaching system used therefor |
CN109834706A (en) * | 2017-11-25 | 2019-06-04 | 梅卡曼德(北京)机器人科技有限公司 | The method and device of kinematicsingularities is avoided in robot motion planning |
CN110977932A (en) * | 2018-10-03 | 2020-04-10 | 发那科株式会社 | Robot teaching device, robot teaching method, and method for storing operation command |
US11518025B2 (en) * | 2018-10-03 | 2022-12-06 | Fanuc Corporation | Robot teaching device, robot teaching method, and method of storing operation instruction |
WO2021241398A1 (en) * | 2020-05-25 | 2021-12-02 | ファナック株式会社 | Offline teaching device and motion program generation method |
JP7448651B2 (en) | 2020-05-25 | 2024-03-12 | ファナック株式会社 | Offline teaching device and operation program generation method |
WO2023162225A1 (en) * | 2022-02-28 | 2023-08-31 | ファナック株式会社 | Robot control device and multijoint robot |
JP7421155B1 (en) | 2023-09-29 | 2024-01-24 | 株式会社不二越 | Robot teaching system and teaching method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015098076A (en) | Robot program creation method, robot program creation device, program, and recording medium | |
EP3363604B1 (en) | Robot simulator, robot system and simulation method | |
US11007646B2 (en) | Programming assistance apparatus, robot system, and method for generating program | |
JP6311421B2 (en) | Teaching system, robot system, and teaching method | |
JP4917252B2 (en) | Arc welding equipment | |
JP3819883B2 (en) | Robot program position correction device | |
CN100361793C (en) | Offline programming device | |
EP3178618B1 (en) | Offline teaching device | |
US9186792B2 (en) | Teaching system, teaching method and robot system | |
JP2020128009A (en) | Method for controlling robot | |
JP2006190228A (en) | Operation program creating method | |
US20160075025A1 (en) | Robot system for setting motion monitoring range of robot | |
JP2015231640A (en) | Robot operation path checking device, robot system, robot operation path checking method, program and recording medium | |
US11413752B2 (en) | Programming assistance for robots | |
JP2013136123A (en) | Assisting device and assisting method for teaching operation for robot | |
US20180173200A1 (en) | Gestural control of an industrial robot | |
JP4574580B2 (en) | Offline teaching device for work robots | |
JP2009119589A (en) | Robot simulator | |
JP2003127077A (en) | Robot program modification device for working robot | |
JP2008142788A (en) | Operation program preparation supporting method and operation program preparing device | |
JP2008046913A (en) | Numerical control device of machine tools | |
JP2013046938A (en) | Program generation device and method for the same | |
JP4794937B2 (en) | Programming device for arc welding | |
JP6792184B1 (en) | Simulation systems, simulation methods, simulation programs, robot manufacturing methods, and robot systems | |
JP2020185637A (en) | Robot program evaluation device, robot program evaluation method and robot program evaluation program |