JP2011059801A - Program creation/instruction device and method - Google Patents

Program creation/instruction device and method Download PDF

Info

Publication number
JP2011059801A
JP2011059801A JP2009206277A JP2009206277A JP2011059801A JP 2011059801 A JP2011059801 A JP 2011059801A JP 2009206277 A JP2009206277 A JP 2009206277A JP 2009206277 A JP2009206277 A JP 2009206277A JP 2011059801 A JP2011059801 A JP 2011059801A
Authority
JP
Japan
Prior art keywords
teaching
robot
program
variable
variables
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009206277A
Other languages
Japanese (ja)
Inventor
Hiroyuki Makita
裕行 牧田
Tsutomu Yoshikawa
勉 吉川
Koji Shirato
浩司 白土
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2009206277A priority Critical patent/JP2011059801A/en
Publication of JP2011059801A publication Critical patent/JP2011059801A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a program creation/instruction device allowing an instruction of position data in a short time even if a program is a robot program having a complicated flow. <P>SOLUTION: This program creation/instruction device includes: a process (step S11) of analyzing the created robot program, and extracting a position variable used thereinside; a process (step S12) of selecting the position variable necessary to be instructed with a value as an instruction target variable from the extracted position variables; a process (step S13) of arranging the instruction target variables with a graph structure corresponding to order wherein an instruction using the instruction target variable is executed; and a process (step S14) of sequentially displaying the instruction target variables according to the arrangement in the graph structure when receiving the instruction of the instruction target variable. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、ロボットのプログラムの作成、教示を行うプログラム作成・教示装置及び方法に関する。   The present invention relates to a program creation / teaching apparatus and method for creating and teaching a robot program.

ロボットを動作させるためには、ロボット言語を用いてロボットプログラムを作成し、作業を行う位置をロボットプログラム中の位置データに記憶させる教示作業が必要である。   In order to operate the robot, it is necessary to create a robot program using the robot language and to perform teaching work for storing the position where the work is performed in the position data in the robot program.

従来のロボットへの教示方法は、ロボットプログラムを1行ずつ表示装置に表示して教示作業者に提示し、表示された情報を参照しつつ教示作業者が位置教示装置を操作して、位置データを登録するものであった(例えば、特許文献1参照。)。   In a conventional teaching method to a robot, a robot program is displayed on a display device line by line and presented to a teaching worker, and the teaching worker operates the position teaching device while referring to the displayed information, and position data is displayed. (For example, refer to Patent Document 1).

また、教示作業を簡便化するために、ロボットが扱う対象物であるワークの特徴量と、予め設定したティーチングルールとからティーチング位置を算出し、ロボットの移動軌跡などの幾何学的情報に基づいて教示点を並べ替えた上で、作業者に教示させるものであった(例えば、特許文献2参照。)。   In order to simplify the teaching work, the teaching position is calculated from the feature quantity of the workpiece, which is the object handled by the robot, and the preset teaching rule, and based on the geometric information such as the movement trajectory of the robot. After rearranging the teaching points, the operator is taught (see, for example, Patent Document 2).

特開平2−257311号公報JP-A-2-257711 特開平10−222219号公報JP-A-10-222219

しかしながら、特許文献1に開示されるような教示方法は、ロボットプログラムの全ての行を1行ずつ表示し、教示が必要な位置データがその行に含まれているかを教示作業者自身が判断しながら教示作業を行うため、教示作業に非常に時間がかかるという問題があった。   However, the teaching method disclosed in Patent Document 1 displays all the lines of the robot program one line at a time, and the teaching operator himself determines whether the position data that needs teaching is included in the lines. However, since the teaching work is performed, there is a problem that the teaching work takes a very long time.

また、特許文献2に開示されるような教示方法は、塗装用ロボットのように移動軌跡が比較的連続して繋がっている場合には、並び順に教示できるので教示作業に要する時間を短縮できる。しかし、組み立てロボットのように作業位置が飛び飛びに配置される場合には、幾何学的情報など形状特徴だけによる並べ替えでは、作業者が効率よく位置データを教示できず、教示作業に時間がかかるという問題があった。   Further, the teaching method disclosed in Patent Document 2 can reduce the time required for teaching work because teaching can be performed in the order of arrangement when the movement trajectories are connected relatively continuously like a painting robot. However, when work positions are arranged in a distant manner as in an assembly robot, sorting by only shape features such as geometric information cannot be used to teach position data efficiently, and the teaching work takes time. There was a problem.

本発明は、上記に鑑みてなされたものであって、複雑な流れを持つロボットプログラムであっても、短時間で位置データの教示が可能なプログラム作成・教示装置及び方法を得ることを目的とする。   The present invention has been made in view of the above, and an object of the present invention is to provide a program creation / teaching apparatus and method capable of teaching position data in a short time even for a robot program having a complicated flow. To do.

上述した課題を解決し、目的を達成するために、本発明は、作成したロボットプログラムを解析して、その中で使用される位置変数を抽出する手段と、抽出した位置変数の中から、値を教示する必要のある位置変数を教示対象変数として選出する手段と、ロボットプログラムの処理の流れに基づいて、教示対象変数を使用する命令が実行される順序に応じたグラフ構造で教示対象変数を配列させる手段と、教示対象変数の教示受付時に、グラフ構造での配列に従って教示対象変数を順次表示する手段とを有することを特徴とする。   In order to solve the above-described problems and achieve the object, the present invention analyzes a created robot program, extracts a position variable used in the robot program, and extracts a value from the extracted position variables. A position variable that needs to be taught as a teaching target variable, and a teaching target variable in a graph structure corresponding to the order in which instructions using the teaching target variable are executed based on the processing flow of the robot program It is characterized by comprising means for arranging and means for sequentially displaying the teaching target variables according to the arrangement in the graph structure when teaching of the teaching target variables is accepted.

本発明は、教示作業者がロボットプログラムの教示不要な行を見る必要がなくなり、また、短時間で教示が可能となるという従来にはない顕著な効果を奏する。   The present invention eliminates the need for a teaching operator to view a teaching-free line of a robot program, and also has a remarkable effect that the teaching can be performed in a short time.

図1は、本発明の実施の形態1にかかるプログラム作成・教示装置の構成を示す図である。FIG. 1 is a diagram illustrating a configuration of a program creation / teaching apparatus according to a first embodiment of the present invention. 図2は、実施の形態1にかかるプログラム作成・教示装置による教示手順の流れを示す図である。FIG. 2 is a diagram illustrating a flow of a teaching procedure performed by the program creation / teaching apparatus according to the first embodiment. 図3は、実施の形態1による位置変数のグラフ構造を示す図である。FIG. 3 is a diagram showing a graph structure of position variables according to the first embodiment. 図4は、実施の形態1にかるプログラム作成・教示装置の教示時の画面の一例を示す図である。FIG. 4 is a diagram illustrating an example of a screen during teaching of the program creation / teaching apparatus according to the first embodiment. 図5は、本発明の実施の形態2にかかるプログラム作成・教示装置の構成を示す図である。FIG. 5 is a diagram showing the configuration of the program creation / teaching apparatus according to the second embodiment of the present invention. 図6は、本発明の実施の形態3にかかるプログラム作成・教示装置の構成を示す図である。FIG. 6 is a diagram showing the configuration of the program creation / teaching apparatus according to the third embodiment of the present invention. 図7は、実施の形態3にかかるプログラム作成・教示装置による教示手順の流れを示す図である。FIG. 7 is a diagram illustrating a flow of a teaching procedure by the program creation / teaching apparatus according to the third embodiment. 図8は、本発明の実施の形態4にかかるプログラム作成・教示装置の教示時の画面の一例を示す図である。FIG. 8 is a diagram showing an example of a screen at the time of teaching of the program creation / teaching apparatus according to the fourth embodiment of the present invention.

以下に、本発明にかかるプログラム作成・教示装置及び方法の実施の形態を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。   Embodiments of a program creation / teaching apparatus and method according to the present invention will be described below in detail with reference to the drawings. Note that the present invention is not limited to these embodiments.

実施の形態1.
図1は、本発明にかかるプログラム作成・教示装置の実施の形態1としての構成を示す図である。ロボット1は、部品等を把持するためのハンド11を備えており、ロボット制御装置2で実行されるロボットプログラムに従って動作する。ロボット制御装置2は、データ通信部21、プログラム実行部22、ロボット制御部23及びプログラム・データ記憶部24を備える。データ通信部21は、プログラム作成・教示装置3と通信する。プログラム実行部22は、ロボットプログラムを実行する。ロボット制御部23は、ロボットを制御し、動作させる。プログラム・データ記憶部24は、ロボット1を動作させるプログラムや位置データを記憶する。プログラム作成・教示装置3は、プログラム作成・教示部31、データ通信部32及び表示部33を備える。プログラム作成・教示部31は、ロボットプログラムの作成、位置データの教示を行う。データ通信部32は、ロボット制御装置2と通信する。表示部33は、プログラムやデータを表示する。
Embodiment 1 FIG.
FIG. 1 is a diagram showing a configuration of a program creation / teaching apparatus according to a first embodiment of the present invention. The robot 1 includes a hand 11 for gripping parts and the like, and operates according to a robot program executed by the robot control device 2. The robot control apparatus 2 includes a data communication unit 21, a program execution unit 22, a robot control unit 23, and a program / data storage unit 24. The data communication unit 21 communicates with the program creation / teaching device 3. The program execution unit 22 executes a robot program. The robot control unit 23 controls and operates the robot. The program / data storage unit 24 stores a program for operating the robot 1 and position data. The program creation / teaching device 3 includes a program creation / teaching unit 31, a data communication unit 32, and a display unit 33. The program creation / teaching unit 31 creates a robot program and teaches position data. The data communication unit 32 communicates with the robot control device 2. The display unit 33 displays programs and data.

作業者は、プログラム作成・教示装置3を用いて、ロボットプログラムを作成、保存する。   An operator creates and saves a robot program using the program creation / teaching device 3.

ここで、以下のロボットプログラムを対象に本実施の形態での処理について説明する。
1 DEF POSE A01,A02,A03,A04,A05
2 DEF JOINT B01
3 DEF INT C01
4 INPUT #1,C01
5 INPUT #1,A01
6 P11=(0,0,100,0,0,0)
7 P01=A01+P11 '@c:"","","部品把持待避量"
8 MOVE B01 '@c:"作業待機位置"
9 MOVE P01 '@c:"部品待避位置"
10 MOVE A01 '@c:"部品把持位置"
11 OUTPUT #2,1
12 MOVE P01 '@c:"部品待避位置"
13 IF C01=1 THEN GOTO 16
14 IF C01>=2 THEN GOTO 21
15 GOTO 36
16 MOVE P02 '@c:"待避位置1"
17 MOVE A02 '@c:"組付位置1"
18 OUTPUT #2,0
19 MOVE P02 '@c:"待避位置1"
20 GOTO 40
21 MOVE P03 '@c:"待避位置2"
22 MOVE A03 '@c:"組付位置2"
23 OUTPUT #2,0
24 MOVE P03 '@c:"待避位置2"
25 IF C01=3 THEN GOTO 26 ELSE GOTO 40
26 MOVE B01 '@c:"作業待機位置"
27 MOVE P01 '@c:"部品待避位置"
28 MOVE A01 '@c:"部品把持位置"
29 OUTPUT #2,1
30 MOVE P01 '@c:"部品待避位置"
31 MOVE P04 '@c:"待避位置3"
32 MOVE A04 '@c:"組付位置3"
33 OUTPUT #2,1
34 MOVE A04 '@c:"組付位置3"
35 GOTO 40
36 MOVE B01 '@c:"作業待機位置"
37 MOVE A05 '@c:"破棄位置"
38 OUTPUT #2,1
39 GOTO 40
40 MOVE J01 '@c:"次工程待機位置"
Here, processing in the present embodiment will be described for the following robot program.
1 DEF POSE A01, A02, A03, A04, A05
2 DEF JOINT B01
3 DEF INT C01
4 INPUT # 1, C01
5 INPUT # 1, A01
6 P11 = (0,0,100,0,0,0)
7 P01 = A01 + P11 '@c: "", "", "Part gripping saving amount"
8 MOVE B01 '@c: "Work standby position"
9 MOVE P01 '@c: "Parts saving position"
10 MOVE A01 '@c: "Part grip position"
11 OUTPUT # 2,1
12 MOVE P01 '@c: "Parts saving position"
13 IF C01 = 1 THEN GOTO 16
14 IF C01> = 2 THEN GOTO 21
15 GOTO 36
16 MOVE P02 '@c: "Escape position 1"
17 MOVE A02 '@c: "Assembling position 1"
18 OUTPUT # 2,0
19 MOVE P02 '@c: "Escape position 1"
20 GOTO 40
21 MOVE P03 '@c: "Escape position 2"
22 MOVE A03 '@c: "Assembly position 2"
23 OUTPUT # 2,0
24 MOVE P03 '@c: "Escape position 2"
25 IF C01 = 3 THEN GOTO 26 ELSE GOTO 40
26 MOVE B01 '@c: "Work standby position"
27 MOVE P01 '@c: "Parts saving position"
28 MOVE A01 '@c: "Part grip position"
29 OUTPUT # 2,1
30 MOVE P01 '@c: "Parts saving position"
31 MOVE P04 '@c: "Escape position 3"
32 MOVE A04 '@c: "Assembly position 3"
33 OUTPUT # 2,1
34 MOVE A04 '@c: "Assembly position 3"
35 GOTO 40
36 MOVE B01 '@c: "Work standby position"
37 MOVE A05 '@c: "Discard position"
38 OUTPUT # 2,1
39 GOTO 40
40 MOVE J01 '@c: "Stand-by position for next process"

まず、上記ロボットプログラムで用いられている変数について説明する。各行の先頭の数字は行番号を表している。DEFは変数の型定義のための変数宣言である。   First, variables used in the robot program will be described. The number at the beginning of each line represents the line number. DEF is a variable declaration for variable type definition.

1行目のDEF POSEは直交型位置変数を定義する。ここでは、A01,A02,A03,A04,A05が直交型位置変数であることを表している。直交型位置変数とは、直交座標系で表されるデータであり、(X,Y,Z,A,B,C)の形式で表現される。ここで、(X,Y,Z)は三次元直交座標系における位置、(A,B,C)は三次元の姿勢を表す。   The DEF POSE on the first line defines an orthogonal position variable. Here, A01, A02, A03, A04, and A05 are orthogonal position variables. An orthogonal position variable is data represented in an orthogonal coordinate system and is expressed in the form of (X, Y, Z, A, B, C). Here, (X, Y, Z) represents a position in a three-dimensional orthogonal coordinate system, and (A, B, C) represents a three-dimensional posture.

2行目のDEF JOINTは、関節型位置変数を定義する。ここでは、変数B01が関節型位置変数であることを表している。関節型位置変数とは、ロボットの各関節の角度を要素として持つデータであり、垂直多関節型ロボットでは、(J1,J2,J3,J4,J5,J6)と表される。ここで、Ji(i=1,2,・・・,6)は、ロボットの関節角を表す。   DEF JOINT on the second line defines a joint type position variable. Here, it represents that the variable B01 is a joint type position variable. The joint-type position variable is data having an angle of each joint of the robot as an element, and is expressed as (J1, J2, J3, J4, J5, J6) in the vertical articulated robot. Here, Ji (i = 1, 2,..., 6) represents the joint angle of the robot.

3行目のDEF INTは、整数変数を定義する。ここでは、変数C01が整数変数であることを表している。整数変数とは整数値を格納するデータである。   DEF INT on the third line defines an integer variable. Here, the variable C01 is an integer variable. An integer variable is data that stores an integer value.

また、このロボット言語では、暗黙の型宣言として、Pで始まる変数は直交型位置変数、Jで始まる変数は関節型位置変数と定義されているものとする。上記ロボットプログラムにおいては、変数P01、P11などは直交型位置変数、J01は関節型位置変数となる。   In this robot language, as an implicit type declaration, a variable starting with P is defined as an orthogonal position variable, and a variable starting with J is defined as a joint position variable. In the robot program, variables P01 and P11 are orthogonal position variables, and J01 is a joint position variable.

次に、命令について説明する。INPUTは、通信などによって外部から値を読み込み、変数にその値を設定する命令である。例えば、4行目の「INPUT #1,C01」では、外部の通信ポート#1から整数値を読み込み、読み込んだ値をC01に設定する。OUTPUTは、通信などによって外部に値を送出する命令である。例えば、11行目の「OUTPUT #2,1」では、外部の通信ポート#2へ整数値1を送出する。MOVEは、ロボット1を動作させる命令であり、MOVEの後に書かれた位置にロボット1を動かす。例えば、9行目の「MOVE P01」では、ロボット1がP01の示す位置及び姿勢をとるように動く。GOTOは、その後に書かれた番号の行にジャンプする命令である。例えば、15行目の「GOTO 36」では、次の処理として36行目の処理を実行する。IFは、式を評価し、その条件判定によって以降の動作を決定する分岐命令である。例えば、13行目の「IF C01=1 THEN GOTO 16」では、C01が整数値1に等しい場合、16行目にジャンプする。   Next, instructions will be described. INPUT is a command that reads a value from the outside by communication or the like and sets the value to a variable. For example, in “INPUT # 1, C01” on the fourth line, an integer value is read from the external communication port # 1, and the read value is set to C01. OUTPUT is a command for sending a value to the outside through communication or the like. For example, in “OUTPUT # 2, 1” on the 11th line, an integer value 1 is sent to the external communication port # 2. MOVE is a command for operating the robot 1 and moves the robot 1 to the position written after MOVE. For example, in “MOVE P01” on the ninth line, the robot 1 moves to take the position and posture indicated by P01. GOTO is an instruction to jump to the line of the number written after that. For example, in “GOTO 36” on the 15th line, the process on the 36th line is executed as the next process. IF is a branch instruction that evaluates an expression and determines the subsequent operation based on the condition determination. For example, “IF C01 = 1 THEN GOTO 16” on the 13th line jumps to the 16th line when C01 is equal to the integer value 1.

また、各行において、’(アポストロフィー)以降はコメントを表し、プログラム実行には影響しない。コメント中の「@c:」以降の””で囲まれた文字列は、後述する教示時の変数表示のときに変数名と一緒に表示される。従って、「@c:」以降に各変数の説明を記載しておくことで、教示時に教示すべき位置が明確となり、教示作業に要する時間を短縮できる。ここで、行中に複数の変数がある場合は、ロボットプログラム中に変数が書かれた順番に説明を記載する。例えば、7行目では、P01、A01の説明に対応する部分は””となっており、文字列が無いので説明無しとなり、P11の説明は「部品把持待避量」となる。   In each line, the part after '(apostrophe) represents a comment and does not affect the program execution. The character string enclosed in “” after “@c:” in the comment is displayed together with the variable name when the variable is displayed during teaching, which will be described later. Therefore, by describing the explanation of each variable after “@c:”, the position to be taught at the time of teaching becomes clear and the time required for teaching work can be shortened. Here, when there are a plurality of variables in the line, the description is described in the order in which the variables are written in the robot program. For example, in the seventh line, the portion corresponding to the description of P01 and A01 is “”, and there is no description because there is no character string, and the description of P11 is “part gripping saving amount”.

次に、上記ロボットプログラムの流れについて説明する。上記ロボットプログラムは、組み立て工程における部品の組付けを行うものである。まず、プログラム実行部22は、ロボットプログラムの4行目を実行して、整数変数C01に組み立て中の製品の種別を読み込み、プログラム・データ記憶部24に記憶させる。ここで、製品種別は、1、2、3のいずれかとする。次に、プログラム実行部22は、ロボットプログラムの5行目を実行して、位置変数A01に部品位置を読み込み、プログラム・データ記憶部24に記憶させる。続いて、プログラム実行部22は、ロボットプログラムの6行目から12行目を実行して、ロボット1に部品を部品置き場から取り出させる。ここで、P11は部品把持待避量で、部品の把持位置から部品把持後の待避位置までの移動量を表す。具体的には、プログラム実行部22は、ロボットプログラムの6行目を実行して部品把持待避量を設定し、ロボットプログラムの7行目を実行して部品待避位置を計算する。プログラム実行部22は、ロボットプログラムの8行目を実行することによってロボット制御部23を介してロボット1を制御し、ロボット1を作業待機位置へ移動させる。プログラム実行部22は、ロボットプログラムの9行目を実行することによってロボット制御部23を介してロボット1を制御し、部品待避位置P01にハンド11を移動させる。プログラム実行部22は、ロボットプログラムの10行目を実行することによってロボット制御部23を介してロボット1を制御し、ハンド11を部品把持位置A01へ移動させる。プログラム実行部22は、ロボットプログラムの11行目を実行することによってロボット制御部23を介してロボット1を制御し、ハンド11の開閉を操作する通信ポート#2に整数値1を送出してハンド11を閉じて部品を把持する。プログラム実行部22は、ロボットプログラムの12行目を実行することによってロボット制御部23を介してロボット1を制御し、ハンド11を待避位置P11へ移動させて部品を持ち上げ、部品の取り出しを完了させる。   Next, the flow of the robot program will be described. The robot program is for assembling parts in the assembly process. First, the program execution unit 22 executes the fourth line of the robot program, reads the type of the product being assembled into the integer variable C01, and stores it in the program / data storage unit 24. Here, the product type is one of 1, 2, and 3. Next, the program execution unit 22 executes the fifth line of the robot program, reads the component position into the position variable A01, and stores it in the program / data storage unit 24. Subsequently, the program execution unit 22 executes the 6th to 12th lines of the robot program, and causes the robot 1 to take out the parts from the parts storage area. Here, P11 is a component gripping saving amount, which represents the movement amount from the gripping position of the component to the saving position after gripping the component. Specifically, the program execution unit 22 executes the sixth line of the robot program to set the component gripping saving amount, and executes the seventh line of the robot program to calculate the component saving position. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the eighth line of the robot program, and moves the robot 1 to the work standby position. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the ninth line of the robot program, and moves the hand 11 to the component withdrawal position P01. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the 10th line of the robot program, and moves the hand 11 to the component gripping position A01. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the eleventh line of the robot program, and sends an integer value 1 to the communication port # 2 for operating the opening and closing of the hand 11. 11 is closed and the part is gripped. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the 12th line of the robot program, moves the hand 11 to the retracted position P11, lifts the component, and completes the removal of the component. .

次に、プログラム実行部22は、ロボットプログラムの13行目から15行目を実行することで、製品種別に従って以降の作業工程を選択する。製品種別が1の場合、プログラム実行部22は、ロボットプログラムの16行目から19行目を実行してロボット1に組み付け作業を行わせる。製品種別が2又は3の場合、プログラム実行部22は、ロボットプログラムの21行目から34行目を実行してロボット1に組み付け作業を行わせる。なお、製品種別が0又はマイナス値の場合、プログラム実行部22は、エラー処理としてロボットプログラムの36行目から38行目を実行する。   Next, the program execution unit 22 executes the 13th to 15th lines of the robot program, thereby selecting a subsequent work process according to the product type. When the product type is 1, the program execution unit 22 executes the 16th to 19th lines of the robot program and causes the robot 1 to perform the assembly work. When the product type is 2 or 3, the program execution unit 22 executes the 21st to 34th lines of the robot program and causes the robot 1 to perform the assembly work. When the product type is 0 or a negative value, the program execution unit 22 executes the 36th to 38th lines of the robot program as error processing.

製品種別が1の場合の組み付け作業について説明する。プログラム実行部22はロボットプログラムの16行目を実行することによってロボット制御部23を介してロボット1を制御し、ロボット1を組み付け作業の準備点である待避位置P02へ移動させる。プログラム実行部22は、ロボットプログラムの17行目を実行することによってロボット制御部23を介してロボット1を制御し、組付位置A02に部品を装着させる。プログラム実行部22は、ロボットプログラムの18行目を実行することによってロボット制御部23を介してロボット1を制御し、通信ポート#2に整数値0を送出してハンド11を開かせる。プログラム実行部22は、ロボットプログラムの19行目を実行することによってロボット制御部23を介してロボット1を制御し、ロボット1を待避位置P02へ移動させて部品の装着を完了する。   The assembly work when the product type is 1 will be described. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the 16th line of the robot program, and moves the robot 1 to the retracted position P02, which is a preparation point for assembly work. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the 17th line of the robot program, and causes the component to be mounted at the assembly position A02. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the 18th line of the robot program, and sends the integer value 0 to the communication port # 2 to open the hand 11. The program execution unit 22 controls the robot 1 through the robot control unit 23 by executing the 19th line of the robot program, and moves the robot 1 to the retracted position P02 to complete the mounting of the parts.

製品種別が2の場合の組み付け作業を説明する。製品種別が1の場合と同様に、プログラム実行部22はロボットプログラムの21行目から24行目を実行し、ロボット1に組み付け作業を行わせる。ここで、製品種別が1の場合とは異なり、製品種別が2又は3の場合は、組み付け作業における待避位置はP03、組付位置はA03となる。次に、プログラム実行部22は、ロボットプログラムの25行目を実行することによって製品種別を判断し、製品種別が3の場合はロボットプログラムの26行目から34行目も実行する。ロボットプログラムの26行目から30行目は、ロボットプログラムの8行目から12行目の部品取り出しと同様である。ロボットプログラムの31行目から34行目は、製品種別が1又は2の場合の組み付け作業と同じである。ここでの組み付け作業における待避位置はP04、組付位置はA04となる。   The assembly work when the product type is 2 will be described. As in the case where the product type is 1, the program execution unit 22 executes the 21st to 24th lines of the robot program and causes the robot 1 to perform the assembly work. Here, unlike the case where the product type is 1, when the product type is 2 or 3, the retracted position in the assembling work is P03 and the assembling position is A03. Next, the program execution unit 22 determines the product type by executing the 25th line of the robot program. If the product type is 3, the program execution unit 22 also executes the 26th to 34th lines of the robot program. The 26th to 30th lines of the robot program are the same as the parts extraction from the 8th to 12th lines of the robot program. The 31st to 34th lines of the robot program are the same as the assembly work when the product type is 1 or 2. The retracted position in the assembling work here is P04, and the assembling position is A04.

製品種別が0又は負の値の場合に行うエラー処理について説明する。プログラム実行部22は、ロボットプログラムの36行目を実行することによってロボット制御部23を介してロボット1を制御し、ロボット1を作業待機位置へ移動させる。プログラム実行部22は、ロボットプログラムの37行目を実行することによりロボット制御部23を介してロボット1を制御しロボット1を破棄位置A05へ移動させる。これは、取り出した部品を次工程に持ち越さないように破棄するためである。プログラム実行部22は、ロボットプログラムの38行目を実行することによってロボット制御部23を介してロボット1を制御し、ハンド11を開いて部品を破棄させる。最終的には、プログラム実行部22は、ロボットプログラムの40行目を実行することによってロボット制御部23を介してロボット1を制御し、ロボット1を次工程待機位置へ移動させる。   An error process performed when the product type is 0 or a negative value will be described. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the 36th line of the robot program, and moves the robot 1 to the work standby position. The program execution unit 22 executes the 37th line of the robot program to control the robot 1 via the robot control unit 23 and move the robot 1 to the discard position A05. This is because the taken-out parts are discarded so as not to carry over to the next process. The program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the 38th line of the robot program, opens the hand 11 and discards the part. Finally, the program execution unit 22 controls the robot 1 via the robot control unit 23 by executing the 40th line of the robot program, and moves the robot 1 to the next process standby position.

図2に、プログラム作成・教示部31において実行されるロボットプログラムの位置データを教示する手順のフローチャートを示す。図2に基づいて、ロボットプログラムの位置変数を教示する手順について説明する。   FIG. 2 shows a flowchart of a procedure for teaching position data of a robot program executed in the program creation / teaching unit 31. A procedure for teaching position variables of the robot program will be described with reference to FIG.

まず、プログラム作成・教示部31は、ロボットプログラムの変数宣言及びロボットプログラム中で使用された暗黙の型宣言から位置変数を抽出する(ステップS11)。ここでは、ロボットプログラムの構文解析を行い、位置変数を抽出する。上記ロボットプログラムでは、変数A01、A02、A03、A04、A05、B01、P01、P02、P03、P04、P11、J01が位置変数として抽出される。ここで、C01は整数変数として宣言されているため、抽出対象から外す。   First, the program creation / teaching unit 31 extracts a position variable from the variable declaration of the robot program and the implicit type declaration used in the robot program (step S11). Here, syntax analysis of the robot program is performed, and position variables are extracted. In the robot program, variables A01, A02, A03, A04, A05, B01, P01, P02, P03, P04, P11, and J01 are extracted as position variables. Here, since C01 is declared as an integer variable, it is excluded from the extraction target.

次に、プログラム作成・教示部31は、抽出した変数の一覧から、数式によって代入されている変数を削除する。これは、数式によって代入される位置変数は教示する必要がないためである。また、外部から値が設定される位置変数についても、同様に教示する必要がないため、プログラム作成・教示部31は、一覧から削除する(ステップS12)。上記ロボットプログラムにおいては、P11が6行目、P01が7行目で数式によって代入されているため、一覧から削除する。また、上記ロボットプログラムでは5行目のINPUT文によって値が設定されているため、A01を一覧から削除する。削除の結果、残る位置変数はA02、A03、A04、A05、B01、P02、P03、P04、J01となる。   Next, the program creation / teaching unit 31 deletes the variable substituted by the mathematical expression from the extracted variable list. This is because there is no need to teach the position variable substituted by the mathematical formula. Further, since it is not necessary to similarly teach a position variable whose value is set from the outside, the program creation / teaching unit 31 deletes it from the list (step S12). In the above robot program, P11 is assigned to the sixth line, and P01 is assigned to the seventh line by a mathematical expression, so it is deleted from the list. In the robot program, A01 is deleted from the list because the value is set by the INPUT statement on the fifth line. As a result of the deletion, the remaining position variables are A02, A03, A04, A05, B01, P02, P03, P04, and J01.

そして、プログラム作成・教示部31は、残った位置変数をロボットプログラムの実行順に並べ替える(ステップS13)。ここで、ロボットプログラムが分岐処理を含むため、グラフ構造を用いて位置変数を並べる。上記ロボットプログラムには、13、14、25行目にIF文があり、条件によって分岐が発生する。また、15、20、35、39行目にGOTO文があり、処理のジャンプが発生する。   Then, the program creation / teaching unit 31 rearranges the remaining position variables in the order of execution of the robot program (step S13). Here, since the robot program includes a branch process, the position variables are arranged using a graph structure. In the above robot program, there is an IF statement on the 13th, 14th and 25th lines, and a branch occurs depending on the condition. Also, there is a GOTO statement on the 15th, 20th, 35th, and 39th lines, and a processing jump occurs.

図3に、ロボットプログラムの処理分岐に従って位置変数の初出位置をグラフ構造化した状態を示す。上記ロボットプログラムでは処理分岐により処理の流れが4通りとなる。ここで、1番目の処理の流れは製品種別が1の場合を示しており、B01→P02→A02→J01の順に位置変数が使用される。2番目の処理の流れは製品種別が2の場合を示しており、B01→P03→A03→J01の順に位置変数が使用される。3番目の処理の流れは製品種別が3の場合を示しており、B01→P03→A03→P04→A04→J01の順に位置変数が使用される。4番目の処理の流れは製品種別が0以下の場合のエラー処理を示しており、B01→A05→J01の順に位置変数が使用される。   FIG. 3 shows a state in which the first appearance position of the position variable is structured in a graph according to the processing branch of the robot program. In the robot program, there are four processing flows due to processing branching. Here, the first processing flow shows a case where the product type is 1, and position variables are used in the order of B01 → P02 → A02 → J01. The second processing flow shows a case where the product type is 2, and position variables are used in the order of B01 → P03 → A03 → J01. The third processing flow shows a case where the product type is 3, and position variables are used in the order of B01 → P03 → A03 → P04 → A04 → J01. The fourth processing flow shows error processing when the product type is 0 or less, and position variables are used in the order of B01 → A05 → J01.

その後、プログラム作成・教示部31は、ステップS13で並べた位置変数を、グラフ構造に基づいて処理の流れの順に選択し、表示部33に一覧表示する(ステップS14)。図4に、表示部33における表示画面の一例を示す。図4は、グラフ構造の1番目の処理の流れを示している。教示すべき位置変数の一覧が表示され、現在教示中の位置変数が三角形のマーカーによって示されている。位置変数名の右側には、ロボットプログラム中に記載した位置変数に関する説明(””で囲まれた文字列)が表示される。なお、ステップS14では、プログラム作成・教示部31は、ステップS13でグラフ構造化した他の処理の流れについても順次表示して教示者に教示作業を行わせる。すなわち、上記ロボットプログラムの例では、プログラム作成・教示部31は、計4回教示画面を表示部33に表示し、教示を必要とする全ての位置変数について、教示者に教示を行わせる。   Thereafter, the program creation / teaching unit 31 selects the position variables arranged in step S13 in the order of the processing flow based on the graph structure, and displays a list on the display unit 33 (step S14). FIG. 4 shows an example of a display screen on the display unit 33. FIG. 4 shows the first processing flow of the graph structure. A list of position variables to be taught is displayed, and the position variable currently being taught is indicated by a triangular marker. On the right side of the position variable name, an explanation about the position variable described in the robot program (a character string surrounded by "") is displayed. In step S14, the program creation / teaching unit 31 also sequentially displays the other processing flow graph-structured in step S13 and causes the teacher to perform the teaching work. That is, in the example of the robot program, the program creation / teaching unit 31 displays a teaching screen on the display unit 33 a total of four times, and instructs the teacher to teach all position variables that require teaching.

ここで、既に教示済みの点(位置変数)については、再度教示する必要はない。例えば、上記のロボットプログラムでは、位置変数B01やJ01は全ての処理の流れにおいても使用されるが、1番目の処理の流れに沿って教示したならば、2〜4番目の処理の流れに即して再度教示する必要はない。このため、プログラム作成・教示部31は、教示済みの点については教示作業の対象から外し、教示すべき点とは異なる表示をする(文字をグレーに変更する、ボックスの色を変えるなど)ようにしても良い。   Here, it is not necessary to teach again about the already taught point (position variable). For example, in the robot program described above, the position variables B01 and J01 are used in all processing flows. However, if teaching is performed along the first processing flow, the position variables B01 and J01 are immediately followed by the second to fourth processing flows. There is no need to teach again. For this reason, the program creation / teaching unit 31 removes the taught points from the teaching work and displays them differently from the points to be taught (changes the character to gray, changes the color of the box, etc.). Anyway.

逆に、教示済みの点について再教示することも可能である。これは、ロボットの姿勢や部品の重さによってたわみが発生したり、内部のギヤのバックラッシュなどの原因で僅かに位置がずれる可能性があり、同一のロボットプログラムでも処理の流れによって教示データを変更することがあるためである。よって、処理の流れごとに教示データを保持することで、組み立て時の僅かなずれによる作業エラーの発生を低減できる。再教示可能とする場合には、各教示点に対して1個のデータ領域ではなく、各処理の流れごとにデータを保持できるように複数個のエリアを持たせることで処理を行う。   On the contrary, it is also possible to re-teach the taught point. This is because there is a possibility that the position of the robot may be slightly displaced due to the posture of the robot or the weight of the parts, or due to backlash of the internal gear, etc. This is because it may change. Therefore, by holding the teaching data for each processing flow, it is possible to reduce the occurrence of work errors due to slight deviations during assembly. When re-teaching is possible, processing is performed by providing a plurality of areas so that data can be held for each processing flow instead of one data area for each teaching point.

なお、図1においては、プログラム作成・教示部31がプログラム作成・教示装置3にある構成としたが、これがロボット制御装置2内に存在する構成や、プログラム作成・教示装置3とロボット制御装置2とが一体となった構成でも同様の効果が得られることはいうまでも無い。   In FIG. 1, the program creation / teaching unit 31 is provided in the program creation / teaching device 3, but the configuration in which the program creation / teaching device 3 exists in the robot control device 2, the program creation / teaching device 3, and the robot control device 2. It goes without saying that the same effect can be obtained even in a configuration in which the two are integrated.

さらに、図3においては、各処理の流れにおいて、一度グラフ構造上に現れた位置変数をグラフ構造から除外した(同じ処理の流れの中に同一の位置変数が重複して出現しないように初出位置をグラフ構造化した)が、組み立ての手順と完全に一致させるために、出現済みの位置変数を除外せずに、ロボットプログラム上で使用される順番に全ての位置変数をグラフ構造に格納し、表示しても良い。   Further, in FIG. 3, in each processing flow, the position variable that once appeared on the graph structure is excluded from the graph structure (the first appearing position so that the same position variable does not appear repeatedly in the same processing flow). In order to perfectly match the assembly procedure, all position variables are stored in the graph structure in the order used in the robot program, without excluding existing position variables. You may display.

またさらに、図4においては、位置変数を一覧表示し、教示するデータを三角形のマーカーで指示する例を示したが、三角形のマーカーで指示する代わりに、該当する行に色を付けたり、一覧表示ではなく教示すべき位置変数だけを順次表示しても同様の効果が得られる。   Further, FIG. 4 shows an example in which position variables are displayed in a list and the teaching data is indicated by a triangular marker. Instead of instructing by a triangular marker, a corresponding line is colored or a list is displayed. The same effect can be obtained by sequentially displaying only the position variables to be taught instead of the display.

本実施の形態においては、ロボットプログラム中の教示不要な行や変数を教示作業者が自身で見分ける必要がなく、また、組み立て手順に沿ったロボットの動作順に教示位置が表示されるため、教示作業に要する時間を短縮できる。また、ロボットプログラムの作成時に、教示すべき位置変数の説明をロボットプログラム内に記述しておくだけで、教示作業の際に説明が表示される。このため、ロボットプログラムの処理の内容が理解しやすくなるとともに、教示時にどのような位置を教示すればよいか明確になり、教示作業に要する時間の短縮を図れる。教示作業時にロボットやプログラム作成・教示装置を稼働する時間が短縮されることにより省エネルギー化を実現でき、ひいては、生産設備としてのロボット自体が環境に与える負荷を低減できる。   In this embodiment, it is not necessary for the teaching operator to identify lines and variables that do not require teaching in the robot program, and the teaching position is displayed in the order of the robot operation according to the assembly procedure. Can be shortened. In addition, when a robot program is created, the description of the position variable to be taught is simply described in the robot program, and the explanation is displayed during the teaching operation. For this reason, it becomes easy to understand the processing contents of the robot program, it becomes clear what position should be taught at the time of teaching, and the time required for teaching work can be shortened. Energy saving can be realized by shortening the time for operating the robot and the program creation / teaching device during teaching work, and consequently the load on the environment by the robot itself as a production facility can be reduced.

さらに、処理の流れごとに組み立て誤差が発生する場合でも、ロボットプログラム自体を変更することなく処理の流れごとに教示点を保持できるため、組み立て作業時のエラー発生を低減できる。   Furthermore, even when an assembly error occurs for each process flow, the teaching points can be held for each process flow without changing the robot program itself, so that the occurrence of errors during the assembly work can be reduced.

実施の形態2.
図5は、本発明にかかるプログラム作成・教示装置の実施の形態2としての構成を示す図である。プログラム作成・教示装置3は、プログラム作成・教示部31、表示部33、ロボットシミュレーション部34及びデータ記憶部35を有する。プログラム作成・教示部31は実施の形態1と同様である。表示部33は、ロボットのモデルやロボットプログラム、位置データを表示する。ロボットシミュレーション部34は、ロボットの動作をシミュレーションする。データ記憶部35は、プログラムや位置データを記憶する。本実施の形態において、プログラム作成・教示装置3は、パーソナルコンピュータやワークステーションなどのコンピュータ上にソフトウェア処理によって実現される。
Embodiment 2. FIG.
FIG. 5 is a diagram showing a configuration of the program creation / teaching apparatus according to the second embodiment of the present invention. The program creation / teaching apparatus 3 includes a program creation / teaching unit 31, a display unit 33, a robot simulation unit 34, and a data storage unit 35. The program creation / teaching unit 31 is the same as in the first embodiment. The display unit 33 displays a robot model, a robot program, and position data. The robot simulation unit 34 simulates the operation of the robot. The data storage unit 35 stores programs and position data. In the present embodiment, the program creation / teaching device 3 is realized by software processing on a computer such as a personal computer or a workstation.

プログラム作成・教示部31の処理内容は、実施の形態1と同様であるが、位置データを教示する際にロボット実機を用いるのではなく、コンピュータの画面上(表示部33)に表示されたロボットモデルを用いて行う。また、データ記憶部35は、実施の形態1のロボット制御装置2のプログラム・データ記憶部24と同等の機能を持つが、データ記憶部35はロボットを実際には動作させないオフライン状態のみで使用する。また、ロボットシミュレーション部34は、ロボットモデルを用いてロボットの動きを模擬するものであり、ロボットプログラムを実行し、ハンド11の座標データ、ロボットの各軸の角度データなどを取得することができる。ロボットシミュレーション部34は、ロボットだけでなく、ロボットの周囲の物体も定義することができる。例えば、架台、作業対象物であるワーク、ワークを保持する冶具、ワークに取り付ける部品、部品を保持する部品台などである。また、表示部33は、実施の形態1と同様であるが、ロボットシミュレータの三次元データ(三次元画像)を表示することができる。表示部33は、三次元画像の表示画面において、三次元上の座標位置を指定することが可能である。   The processing contents of the program creation / teaching unit 31 are the same as those in the first embodiment, but the robot displayed on the computer screen (display unit 33) is used instead of using the actual robot when teaching the position data. Use a model. The data storage unit 35 has the same function as the program / data storage unit 24 of the robot control apparatus 2 of the first embodiment, but the data storage unit 35 is used only in an offline state where the robot is not actually operated. . The robot simulation unit 34 simulates the movement of the robot using a robot model, and can execute the robot program to acquire the coordinate data of the hand 11 and the angle data of each axis of the robot. The robot simulation unit 34 can define not only the robot but also objects around the robot. For example, there are a gantry, a work that is a work object, a jig that holds the work, a part that is attached to the work, a parts table that holds the part, and the like. The display unit 33 is similar to the first embodiment, but can display the three-dimensional data (three-dimensional image) of the robot simulator. The display unit 33 can specify a three-dimensional coordinate position on a three-dimensional image display screen.

実施の形態2における教示作業の手順について説明する。まず、ロボットシミュレーション部34において、ロボットの周囲の物体を定義する。このロボットの周囲の物体の定義は、3D−CADを用いたり、物体の頂点データを入力したりしてもよい。次に、実施の形態1と同様に、図2のステップS11、ステップS12、ステップS13で命令の実行順にグラフ構造で変数を並べる。次に、ステップS14では、表示部33で、先に定義したロボット及びロボットの周囲の物体である架台、ワーク、冶具などを三次元画像で表示する。教示作業者は、部品の把持、部品の組み付けに使用する三次元の座標を表示部33の画面上で指定する。ロボットシミュレーション部34は、指定された三次元座標に基づき、ロボットの各軸の角度を計算し、ロボットモデルを指定した位置に動かして画面表示する。これによって、ロボットの位置及び姿勢が正しいか否かを判断できる。   A procedure of teaching work in the second embodiment will be described. First, the robot simulation unit 34 defines objects around the robot. The definition of the object around the robot may use 3D-CAD or input vertex data of the object. Next, as in the first embodiment, in step S11, step S12, and step S13 of FIG. Next, in step S14, the display unit 33 displays the previously defined robot and a frame, a work, a jig, and the like that are objects around the robot as a three-dimensional image. The teaching worker specifies on the screen of the display unit 33 the three-dimensional coordinates used for gripping the part and assembling the part. The robot simulation unit 34 calculates the angle of each axis of the robot based on the designated three-dimensional coordinates, moves the robot model to the designated position, and displays it on the screen. This makes it possible to determine whether the position and posture of the robot are correct.

ここで、三次元座標、姿勢の指定方法は表示部33の画面上で指定する以外に、座標値を数値で入力する方法や、画面上に表示された物体を指定するなどの方法を用いることも可能であり、このようにして三次元座標や姿勢を指定した場合も同様の効果を奏する。   Here, in addition to specifying the three-dimensional coordinates and orientation on the screen of the display unit 33, a method of inputting coordinate values numerically or a method of specifying an object displayed on the screen is used. The same effect can be obtained when the three-dimensional coordinates and orientation are designated in this way.

本実施の形態においては、ロボット本体が無くとも教示が可能となるため、教示作業中にロボットを周りの物体に衝突させてしまう恐れがない。また、複数の作業者で分担して同時に教示作業を行うことが可能となるため、教示作業に要する時間を短縮することが可能である。   In the present embodiment, teaching is possible without a robot body, so there is no risk of the robot colliding with surrounding objects during teaching work. In addition, since the teaching work can be performed simultaneously by a plurality of workers, the time required for the teaching work can be shortened.

実施の形態3.
図6は、本発明にかかるプログラム作成・教示装置の実施の形態3としての構成を示す図である。ロボット1は、実施の形態1と同様である。ロボット制御装置2は、実施の形態1のロボット制御装置2の構成に加え、教示作業時にロボット制御部23に指令を出す移動指示実行部26と、移動指示実行部26とプログラム作成・教示装置3との間で通信を行うためのデータ通信部25とを有する。また、プログラム作成・教示装置3は、実施の形態1や実施の形態2のプログラム作成・教示装置3の構成に加え、移動指示部36と、移動指示部36とロボット制御装置2との間で通信を行うためのデータ通信部37とを有し、これらはパーソナルコンピュータやワークステーションなどのコンピュータ上に実現される。
Embodiment 3 FIG.
FIG. 6 is a diagram showing a configuration of the program creation / teaching apparatus according to the third embodiment of the present invention. The robot 1 is the same as that in the first embodiment. In addition to the configuration of the robot control device 2 of the first embodiment, the robot control device 2 includes a movement instruction execution unit 26 that issues a command to the robot control unit 23 during teaching work, a movement instruction execution unit 26, and a program creation / teaching device 3. And a data communication unit 25 for performing communication with each other. In addition to the configuration of the program creation / teaching device 3 of the first and second embodiments, the program creation / teaching device 3 includes a movement instruction unit 36, a movement instruction unit 36, and the robot control device 2. And a data communication unit 37 for performing communication, which are realized on a computer such as a personal computer or a workstation.

プログラム作成・教示装置3の処理において、ロボットシミュレーション部34を使用してデータ記憶部35にオフライン状態でロボットの位置を指定する処理は、実施の形態2と同様であるが、この位置指定処理後に移動指示部36からデータ通信部37、25を介してロボット制御装置2に移動指示を送ることにより、移動指示実行部26は指定した教示点近くまでロボット1を移動させる。その後、作業者が教示作業を行い、教示したデータを現物に合わせて使用する。   In the processing of the program creation / teaching device 3, the processing for specifying the position of the robot in the offline state in the data storage unit 35 using the robot simulation unit 34 is the same as in the second embodiment. By sending a movement instruction from the movement instruction unit 36 to the robot controller 2 via the data communication units 37 and 25, the movement instruction execution unit 26 moves the robot 1 to the vicinity of the designated teaching point. Thereafter, the worker performs teaching work and uses the taught data in accordance with the actual product.

図7は、ロボットプログラムの位置データを教示する動作の手順を示すフローチャートである。この動作は、プログラム作成・教示部31において実行される。ステップS11、S12の処理は、実施の形態1と同様である。その後、実施の形態2と同様に、ロボットシミュレーション部34を用いてオフラインで三次元情報を教示者により設定させる(ステップS21)。この際には、実施の形態2と同様に三次元座標系での座標値を指定することに加え、部品から見てロボットのハンド11が指定位置に向けて移動してくる方向を示したアプローチベクトルも同時に指定する。例えば、上方向から下方向(つまりZ軸の下方向)に部品を組み付ける組付作業位置の教示では、部品を組みつけられるワークの組み付け位置の三次元座標と、この組み付け位置にロボットが移動するアプローチベクトル、例えば(0,0,100)を指定する。このアプローチベクトルは、ロボット周辺の物体の形状の面と面上の座標値とを指定することで算出することも可能である。この時は、面の法線ベクトルをアプローチベクトルの単位ベクトルとして扱い、ロボットのハンド11と面とが衝突しない位置をベクトル長として計算する。例えば、部品把持位置の教示では、部品の三次元画像の把持する側の面の中心点を指定することで、アプローチベクトルを計算できる。   FIG. 7 is a flowchart showing an operation procedure for teaching position data of the robot program. This operation is executed in the program creation / teaching unit 31. The processes in steps S11 and S12 are the same as in the first embodiment. Thereafter, as in the second embodiment, the robot simulation unit 34 is used to set the three-dimensional information offline by the teacher (step S21). In this case, as in the second embodiment, in addition to designating coordinate values in the three-dimensional coordinate system, an approach showing the direction in which the robot hand 11 moves toward the designated position as seen from the part. A vector is also specified. For example, in the teaching of the assembly work position where parts are assembled from the upper direction to the lower direction (that is, the lower direction of the Z-axis), the three-dimensional coordinates of the assembly position of the workpiece on which the parts can be assembled and the robot moves to this assembly position. Designate an approach vector, for example (0, 0, 100). This approach vector can be calculated by designating the surface of the shape of the object around the robot and the coordinate value on the surface. At this time, the normal vector of the surface is treated as a unit vector of the approach vector, and the position where the robot hand 11 does not collide with the surface is calculated as the vector length. For example, in teaching the component gripping position, the approach vector can be calculated by designating the center point of the gripping surface of the three-dimensional image of the component.

次に、プログラム作成・教示部31は、ステップS21で設定された三次元座標とアプローチベクトルとから教示開始点を計算する(ステップS22)。ここで、教示開始点は、ロボット1を動かして教示作業を行うときに、オフラインで教示した座標の近傍までロボットを動かす点である。教示開始点は、作業位置とアプローチベクトルとを加算することによって算出する。   Next, the program creation / teaching unit 31 calculates a teaching start point from the three-dimensional coordinates set in step S21 and the approach vector (step S22). Here, the teaching start point is a point where the robot is moved to the vicinity of the coordinates taught offline when the robot 1 is moved to perform teaching work. The teaching start point is calculated by adding the work position and the approach vector.

ステップS13、S14の処理は、実施の形態1と同様である。その後、移動指示部36からロボット制御装置2に移動指示を送り、ロボット1を教示開始点まで動かして教示作業を行い、教示したデータを現物に合わせて使用する(ステップS23)。   The processes in steps S13 and S14 are the same as in the first embodiment. Thereafter, a movement instruction is sent from the movement instructing unit 36 to the robot controller 2, and the robot 1 is moved to the teaching start point to perform teaching work, and the taught data is used in accordance with the actual object (step S23).

本実施の形態のように、教示作業時に教示開始点へロボットを動かすことで、ロボットを大きく動かすことなく教示作業を行えるため、作業に要する時間を短縮できる。また、異なる教示点を教示してしまうミスを防ぐことができる。   As in the present embodiment, by moving the robot to the teaching start point during the teaching work, the teaching work can be performed without moving the robot greatly, so that the time required for the work can be shortened. Moreover, the mistake which teaches a different teaching point can be prevented.

実施の形態4.
図8は、本発明にかかるプログラム作成・教示装置の実施の形態4における教示時の画面の一例を示す図である。プログラム作成・教示装置3の構成は、実施の形態3と同様であり、表示部33は三次元表示機能を備えている。ロボットプログラムの位置データを教示する動作の手順は、ステップS11、S12、S21、S22、S13、S23については実施の形態3と同様である。ステップS14において、プログラム作成・教示部31は、表示部33に教示点、属性情報、順序だけでなく、三次元表示で教示点の前の位置から教示点までのロボットの軌跡52も表示させる。
Embodiment 4 FIG.
FIG. 8 is a diagram showing an example of a teaching screen in the fourth embodiment of the program creation / teaching apparatus according to the present invention. The configuration of the program creation / teaching device 3 is the same as that of the third embodiment, and the display unit 33 has a three-dimensional display function. The operation procedure for teaching the position data of the robot program is the same as that of the third embodiment in steps S11, S12, S21, S22, S13, and S23. In step S14, the program creation / teaching unit 31 causes the display unit 33 to display not only the teaching point, attribute information, and order, but also the robot trajectory 52 from the position before the teaching point to the teaching point in a three-dimensional display.

このように、教示開始前に教示位置までのロボットの軌跡52を事前に三次元画像として表示することで、ロボットが教示開始位置へ動く際に周りの物体と衝突しないことを事前に確認することが可能となる。これにより、ロボットを教示開始位置へ動かす際の確認動作が不要となり、教示作業に要する時間を短縮できる。   As described above, by displaying the robot trajectory 52 up to the teaching position as a three-dimensional image in advance before starting teaching, it is confirmed in advance that the robot does not collide with surrounding objects when moving to the teaching starting position. Is possible. This eliminates the need for a confirmation operation when moving the robot to the teaching start position, thereby reducing the time required for teaching work.

なお、ここではロボットの軌跡を三次元画像として表示する場合を例としたが、必ずしも三次元の画像として表示する必要はなく、ロボットの移動先が想定している場所であるか否かや、他の物体との衝突の有無を教示作業者が確認できさえすれば、二次元の画像などとして表示しても良い。   In addition, although the case where the locus | trajectory of a robot is displayed as an example here as an example, it is not necessarily displayed as a three-dimensional image, whether the movement destination of the robot is assumed or not, As long as the teaching worker can confirm the presence or absence of a collision with another object, it may be displayed as a two-dimensional image.

この他については第3の実施の形態と同様であるため、重複する説明は割愛する。   Since other aspects are the same as those in the third embodiment, overlapping description is omitted.

なお、上記各実施の形態は、本発明の好適な実施の一例であり、本発明はこれらに限定されることなく、様々な変形が可能である。   Each of the above embodiments is an example of a preferred embodiment of the present invention, and the present invention is not limited to these, and various modifications can be made.

以上のように、本発明にかかるプログラム作成・教示装置及び方法は、ロボットを教示するのに有用であり、特に、短時間でロボットを教示するのに適している。   As described above, the program creation / teaching apparatus and method according to the present invention are useful for teaching a robot, and are particularly suitable for teaching a robot in a short time.

1 ロボット
2 ロボット制御装置
3 プログラム作成・教示装置
11 ハンド
21、25、32、37 データ通信部
22 プログラム実行部
23 ロボット制御部
24 プログラム・データ記憶部
26 移動指示実行部
31 プログラム作成・教示部
33 表示部
34 ロボットシミュレーション部
35 データ記憶部
36 移動指示部
52 ロボットの軌跡
1 Robot 2 Robot Control Device 3 Program Creation / Teaching Device 11 Hand 21, 25, 32, 37 Data Communication Unit 22 Program Execution Unit 23 Robot Control Unit 24 Program / Data Storage Unit 26 Movement Instruction Execution Unit 31 Program Creation / Teaching Unit 33 Display unit 34 Robot simulation unit 35 Data storage unit 36 Movement instruction unit 52 Robot trajectory

Claims (5)

作成したロボットプログラムを解析して、その中で使用される位置変数を抽出する抽出手段と、
抽出した位置変数の中から、値を教示する必要のある位置変数を教示対象変数として選出する手段と、
前記ロボットプログラムの処理の流れに基づいて、前記教示対象変数を使用する命令が実行される順序に応じたグラフ構造で前記教示対象変数を配列させる手段と、
前記教示対象変数の教示受付時に、前記グラフ構造での配列に従って前記教示対象変数を順次表示する表示手段とを有することを特徴とするプログラム作成・教示装置。
An extraction means for analyzing the created robot program and extracting position variables used therein;
Means for selecting a position variable that needs to be taught as a teaching target variable from among the extracted position variables;
Means for arranging the teaching target variables in a graph structure in accordance with the order in which instructions for using the teaching target variables are executed based on the processing flow of the robot program;
A program creation / teaching apparatus comprising: a display unit that sequentially displays the teaching target variables in accordance with the arrangement in the graph structure when the teaching target variables are accepted.
前記抽出手段は、前記位置変数に関連づけられて前記ロボットプログラム中に記載された文字列を前記位置変数とともに抽出し、
前記表示手段は、教示時に前記文字列を前記位置変数と合わせて表示することを特徴とする請求項1記載のプログラム作成・教示装置。
The extraction means extracts a character string described in the robot program associated with the position variable together with the position variable,
2. The program creation / teaching apparatus according to claim 1, wherein the display means displays the character string together with the position variable at the time of teaching.
外部から取得した位置情報に基づいた値を前記教示対象変数に設定する手段と、
前記ロボットプログラムに従って動作するロボットを、前記教示対象変数の教示受付に先立って前記位置情報が示す位置の近傍に設定する教示開始位置へ移動させる手段とを有することを特徴とする請求項1又は2記載のプログラム作成・教示装置。
Means for setting a value based on position information acquired from the outside to the teaching target variable;
3. A means for moving a robot that operates according to the robot program to a teaching start position that is set in the vicinity of the position indicated by the position information prior to receiving the teaching of the teaching target variable. The program creation / teaching device described.
前記ロボットを前記教示開始位置へ移動させるのに先立って、前記ロボットの軌跡をシミュレーション表示する手段を有することを特徴とする請求項3記載のプログラム作成・教示装置。   4. The program creation / teaching apparatus according to claim 3, further comprising means for simulating and displaying the trajectory of the robot prior to moving the robot to the teaching start position. 作成したロボットプログラムを解析して、その中で使用される位置変数を抽出する工程と、
抽出した位置変数の中から、値を教示する必要のある位置変数を教示対象変数として選出する工程と、
前記ロボットプログラムの処理の流れに基づいて、前記教示対象変数を使用する命令が実行される順序に応じたグラフ構造で前記教示対象変数を配列させる工程と、
前記教示対象変数の教示受付時に、前記グラフ構造での配列に従って前記教示対象変数を順次表示する工程とを有することを特徴とするプログラム作成・教示方法。
Analyzing the created robot program and extracting the position variables used in it,
Selecting a position variable that needs to be taught from among the extracted position variables as a teaching target variable;
Arranging the teaching target variables in a graph structure according to the order in which the instructions using the teaching target variables are executed based on the processing flow of the robot program;
And a step of sequentially displaying the teaching target variables in accordance with the arrangement in the graph structure when receiving the teaching of the teaching target variables.
JP2009206277A 2009-09-07 2009-09-07 Program creation/instruction device and method Pending JP2011059801A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009206277A JP2011059801A (en) 2009-09-07 2009-09-07 Program creation/instruction device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009206277A JP2011059801A (en) 2009-09-07 2009-09-07 Program creation/instruction device and method

Publications (1)

Publication Number Publication Date
JP2011059801A true JP2011059801A (en) 2011-03-24

Family

ID=43947385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009206277A Pending JP2011059801A (en) 2009-09-07 2009-09-07 Program creation/instruction device and method

Country Status (1)

Country Link
JP (1) JP2011059801A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104339360A (en) * 2013-08-09 2015-02-11 株式会社安川电机 Robot control apparatus and method for controlling robot
WO2015097887A1 (en) * 2013-12-27 2015-07-02 株式会社牧野フライス製作所 Control apparatus for machine tool
US11577381B2 (en) 2019-11-29 2023-02-14 Seiko Epson Corporation Teaching apparatus, robot system, and teaching program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149345A (en) * 1992-11-04 1994-05-27 Yamatake Honeywell Co Ltd Robot action teaching device
JP2007242054A (en) * 1995-09-19 2007-09-20 Yaskawa Electric Corp Robot language processing apparatus
JP2008254172A (en) * 2008-06-03 2008-10-23 Fanuc Ltd Robot program preparation device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149345A (en) * 1992-11-04 1994-05-27 Yamatake Honeywell Co Ltd Robot action teaching device
JP2007242054A (en) * 1995-09-19 2007-09-20 Yaskawa Electric Corp Robot language processing apparatus
JP2008254172A (en) * 2008-06-03 2008-10-23 Fanuc Ltd Robot program preparation device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104339360A (en) * 2013-08-09 2015-02-11 株式会社安川电机 Robot control apparatus and method for controlling robot
JP2015033745A (en) * 2013-08-09 2015-02-19 株式会社安川電機 Robot control device and method
WO2015097887A1 (en) * 2013-12-27 2015-07-02 株式会社牧野フライス製作所 Control apparatus for machine tool
JPWO2015097887A1 (en) * 2013-12-27 2017-03-23 株式会社牧野フライス製作所 Machine tool controller
US10133258B2 (en) 2013-12-27 2018-11-20 Makino Milling Machine Co., Ltd. Control device for a machine tool
US11577381B2 (en) 2019-11-29 2023-02-14 Seiko Epson Corporation Teaching apparatus, robot system, and teaching program

Similar Documents

Publication Publication Date Title
Ostanin et al. Interactive robot programing using mixed reality
US9902067B2 (en) Offline robot programming device
JP6676286B2 (en) Information processing method and information processing apparatus
US10279476B2 (en) Method and system for programming a robot
EP1842631B1 (en) Apparatus and method for automatic path generation for an industrial robot
Mateo et al. Hammer: An Android based application for end-user industrial robot programming
US7430457B2 (en) Robot teaching program editing apparatus based on voice input
WO2004085120A1 (en) Robot simulation device, and robot simulation program
CN104457566A (en) Spatial positioning method not needing teaching robot system
JP2010137298A (en) Method of preparing working program for double arm robot
CN110936354A (en) Program creation assistance device for robot
Gogouvitis et al. Construction of a virtual reality environment for robotic manufacturing cells
JP2011059801A (en) Program creation/instruction device and method
JPS6179589A (en) Operating device for robot
JPH10124130A (en) Assembling device
JP5813931B2 (en) Teaching data correction system
JP2013226602A (en) Industrial machine system
JPH07328968A (en) Robot device
Corke Denavit-Hartenberg notation for common robots
EP0240733B1 (en) Method and controller for controlling a mechanical manipulator
JPS6097409A (en) Operation teaching method of robot
Hwang et al. Interactive task planning through natural language
Tsukahara et al. Computer graphics simulator for a power distribution line maintenance robot
Matour et al. Intuitive Robot Path Planning through Augmented Reality
JP2004082313A (en) Device for making simulation model of robot&#39;s movement

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110928

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130319