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 PDF

Info

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
Application number
JP2013239866A
Other languages
Japanese (ja)
Inventor
圭祐 前原
Keisuke Maehara
圭祐 前原
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013239866A priority Critical patent/JP2015098076A/en
Publication of JP2015098076A publication Critical patent/JP2015098076A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a robot program creation method for determining whether or not a correction of a motion trajectory is necessary while a user is creating a robot program.SOLUTION: In response to the input of a teaching point for teaching a robot, an operation unit checks whether or not the teaching point overlaps a singular point or an interference point, and then sets the teaching point checked (S1). The operation unit calculates a plurality of interpolation points on a motion trajectory, each time it receives the input of such an operation one of statements as creates a motion trajectory between the teaching points (S5). The operation unit determines whether or not such one of the plural interpolation points as overlaps the singular point or the interference point is present (S6).

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 Patent Document 1 has been known regarding a method of creating a robot program so that interference does not occur at each teaching point.

特許文献1においては、ロボットプログラムを作成するロボットモデル及びワークモデルをディスプレイ画面に表示し、干渉チェックするか否か、ニアミスチェックするか否か、及びニアミス距離を予め設定し、ロボットモデルを第1教示点に移動させる。このときの干渉の有無を判定する。判定の結果、干渉又はニアミスが生じる場合は警告を発し、警告に従ってオペレータはロボットモデルの誘導経路等を変更する。この操作を繰返し、かつロボットの全ての教示点についてこの操作を行い、干渉がなくなった時点でプログラムを完成させる、という方法をとっていた。   In Patent Document 1, a robot model and a work model for creating a robot program are displayed on a display screen, whether to perform interference check, whether to perform near miss check, and a near miss distance are set in advance. Move to teaching point. The presence or absence of interference at this time is determined. As a result of the determination, if an interference or a near miss occurs, a warning is issued, and the operator changes the guidance route of the robot model according to the warning. This operation was repeated, and this operation was performed for all teaching points of the robot, and when the interference disappeared, the program was completed.

特開2006−190228号公報JP 2006-190228 A

ところで、ロボットの動作軌道は、教示点間を補間して滑らかな動きを実現している。しかしながら、上記特許文献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 Patent Document 1, interference is generated in the motion trajectory between the teaching points in order to check only whether interference occurs at the teaching points. There was a problem of not knowing whether or not there exists. Further, the motion program creation method described in Patent Document 1 has a problem that it is not known whether or not there is a point that is a singular point in the motion trajectory. For this reason, there is a case where it is found that there is a problem on the trajectory at the time when the simulation or the actual machine operation confirmation is performed after the creation of the robot program, and there is a problem that reworking the robot programming, so-called reworking occurs.

そこで、本発明は、ユーザがロボットプログラムの作成中に動作軌道の修正が必要か否かを判断できるロボットプログラム作成方法、ロボットプログラム作成装置、プログラム及び記録媒体を提供することを目的とする。   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.

第1実施形態に係るロボットシステムの概略構成を示す説明図である。It is explanatory drawing which shows schematic structure of the robot system which concerns on 1st Embodiment. 第1実施形態に係るロボットプログラム作成装置を示すブロック図である。It is a block diagram which shows the robot program creation apparatus which concerns on 1st Embodiment. 第1実施形態に係るロボットコントローラ及びロボットプログラム作成装置を示す概要図である。It is a schematic diagram showing a robot controller and a robot program creation device concerning a 1st embodiment. ワールド座標系において教示点を設定した状態を示す模式図である。It is a schematic diagram which shows the state which set the teaching point in the world coordinate system. 第1実施形態に係るロボットプログラム作成方法を示すフローチャートである。It is a flowchart which shows the robot program creation method which concerns on 1st Embodiment. プログラムがインストールされたロボットプログラム作成装置を示す図である。It is a figure which shows the robot program creation apparatus with which the program was installed. 第2実施形態に係るロボットプログラム作成方法を示すフローチャートである。It is a flowchart which shows the robot program creation method which concerns on 2nd Embodiment. 第3実施形態に係るロボットプログラム作成方法を示すフローチャートである。It is a flowchart which shows the robot program creation method which concerns on 3rd Embodiment. 第4実施形態に係るロボットプログラム作成方法を示すフローチャートである。It is a flowchart which shows the robot program creation method which concerns on 4th Embodiment. 第5実施形態に係るロボットプログラム作成方法を示すフローチャートである。It is a flowchart which shows the robot program creation method which concerns on 5th Embodiment.

以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。   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 robot system 100 includes a vertically articulated robot 200, a control device 300 that is a robot controller, and a robot program creation device 400.

ロボット200は、多軸(例えば6軸)のロボットアーム201と、ロボットアーム201の先端に取り付けられたグリッパ状のロボットハンド等のエンドエフェクタ202と、を有しており、電力線及び通信線で制御装置300に接続されている。制御装置300は通信線を介してロボットプログラム作成装置400に接続されている。   The robot 200 has a multi-axis (for example, 6-axis) robot arm 201 and an end effector 202 such as a gripper-like robot hand attached to the tip of the robot arm 201, and is controlled by a power line and a communication line. It is connected to the device 300. The control device 300 is connected to the robot program creation device 400 via a communication line.

ロボット200のエンドエフェクタ202の代表点として、ツールセンターポイント(TCP)203が、グリッパの把持中心に設定されている。   As a representative point of the end effector 202 of the robot 200, a tool center point (TCP) 203 is set at the gripping center of the gripper.

ロボットプログラム作成装置400を用いることにより、ユーザがロボット言語で記述された命令文や制御文からなるテキスト形式のロボットプログラムを作成する。その際、ロボットプログラム作成装置400は、ロボットプログラムの作成中に、命令文中の動作命令文に基づき、ロボット200の動作をシミュレートするものである。   By using the robot program creation device 400, the user creates a text-format robot program consisting of command statements and control statements written in a robot language. At that time, the robot program creation device 400 simulates the motion of the robot 200 based on the motion command statement in the command statement during the creation of the robot program.

図2は、本発明の第1実施形態に係るロボットプログラム作成装置400を示すブロック図である。ロボットプログラム作成装置400は、装置本体411と、装置本体411に接続された入出力装置421,422,423とからなる。   FIG. 2 is a block diagram showing the robot program creation device 400 according to the first embodiment of the present invention. The robot program creation device 400 includes a device main body 411 and input / output devices 421, 422, and 423 connected to the device main body 411.

装置本体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 main body 411 includes a CPU (Central Processing Unit) 401 as a calculation unit. The apparatus main body 411 includes a ROM (Read Only Memory) 402, a RAM (Random Access Memory) 403, and an HDD (Hard Disk Drive) 404 as storage units. In addition, the apparatus main body 411 includes a recording disk drive 405 and various interfaces 406 to 409.

CPU401には、ROM402、ROM403、HDD404、記録ディスクドライブ405及び各種のインタフェース406〜409が、バス410を介して接続されている。ROM402には、BIOS等の基本プログラムが格納されている。RAM403は、CPU401の演算処理結果等、各種データを一時的に記憶する記憶装置である。   A ROM 402, a ROM 403, an HDD 404, a recording disk drive 405, and various interfaces 406 to 409 are connected to the CPU 401 via a bus 410. The ROM 402 stores basic programs such as BIOS. The RAM 403 is a storage device that temporarily stores various data such as the arithmetic processing result of the CPU 401.

HDD404は、CPU401の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU401に、後述する各種演算処理を実行させるためのプログラム(ロボットプログラム作成プログラム)430を記録するものである。CPU401は、HDD404に記録(格納)されたプログラム430に基づいてロボットプログラム作成方法の各工程を実行する。   The HDD 404 is a storage device that stores arithmetic processing results of the CPU 401, various data acquired from the outside, and the like, and records a program (robot program creation program) 430 for causing the CPU 401 to execute various arithmetic processing described later. It is. The CPU 401 executes each process of the robot program creation method based on the program 430 recorded (stored) in the HDD 404.

記録ディスクドライブ405は、記録ディスク431に記録された各種データやプログラム等を読み出すことができる。   The recording disk drive 405 can read various data and programs recorded on the recording disk 431.

教示部である教示装置(ティーチングペンダント)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 teaching pendant 421 designates teaching points for teaching the robot 200 by a user input operation. The teaching point data is output to the CPU 401 or the HDD 404 through the interface 406 and the bus 410. That is, the CPU 401 receives input of teaching point data from the teaching pendant 421 or the HDD 404.

表示部である表示装置(モニタ)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 CPU 401.

ロボット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 robot 200, is connected to the interface 408. When the user performs a key input operation on the keyboard 423, a signal corresponding to the user's operation is output from the keyboard 423 to the CPU 401. Specifically, when the user inputs a command statement or a control statement into the keyboard 423, the command statement or control statement data is output from the keyboard 423 to the CPU 401. As a result, the CPU 401 receives an input of a command sentence or a control sentence from the keyboard 423. Note that the robot program creation device 400 may include a mouse as an operation unit.

インタフェース409には、制御装置300が接続されており、制御装置300と通信可能となっている。   A control device 300 is connected to the interface 409 and can communicate with the control device 300.

図3は、本発明の第1実施形態に係る制御装置300及びロボットプログラム作成装置400を示す概要図である。   FIG. 3 is a schematic diagram showing the control device 300 and the robot program creation device 400 according to the first embodiment of the present invention.

ロボットプログラム作成装置400において、記憶部として例えばHDD404には、ロボット200や他部材(例えば不図示のワーク)の位置関係を表すメカ情報701や教示点情報702が格納されている。また、HDD404には、ロボット200の形状やロボット200の周辺に配置された他部材の形状を表現するポリゴン情報703が格納されている。   In the robot program creation device 400, for example, the HDD 404 as a storage unit stores mechanical information 701 and teaching point information 702 representing the positional relationship between the robot 200 and other members (for example, a workpiece (not shown)). Further, the HDD 404 stores polygon information 703 that represents the shape of the robot 200 and the shapes of other members arranged around the robot 200.

また、ロボットプログラム作成装置400において、演算部としてのCPU401がプログラム430を実行することにより、逆運動学計算モジュール705及び教示点間補間モジュール706として機能する。   In the robot program creation device 400, the CPU 401 as a calculation unit executes the program 430 to function as an inverse kinematic calculation module 705 and a teaching point interpolation module 706.

ここで、教示点とは、ロボット200に動作・姿勢・手順を教えるために必要となる点のことであり、通常エンドエフェクタ202の代表点203をそこに位置決めする点のことである。   Here, the teaching point is a point that is necessary for teaching the robot 200 of the movement, posture, and procedure, and is a point that normally positions the representative point 203 of the end effector 202 there.

逆運動学計算モジュール705は、設定された教示点に代表点203を位置決めするときのロボット200の各軸への指令を計算する。教示点間補間モジュール706は、動作命令に従って教示点の間に補間点を計算する。例えば動作命令が直線補間命令であった場合は、動作の開始位置となる教示点から動作の終了位置となる教示点の間に直線上に分割点が並ぶように、教示点間を均等に分割し、この分割点が補間点となる。   The inverse kinematics calculation module 705 calculates a command to each axis of the robot 200 when positioning the representative point 203 at the set teaching point. The teaching point interpolation module 706 calculates interpolation points between teaching points according to the operation command. For example, if the motion command is a linear interpolation command, the teaching points are evenly divided so that the dividing points are arranged on a straight line between the teaching point that is the start position of the motion and the teaching point that is the end position of the motion. This division point becomes an interpolation point.

ロボット言語としては、標準規格のSLIM準拠の文法を用いている。メカ情報701や教示点情報702、またロボットプログラム作成装置400で作成されたロボットプログラム(不図示)は、通信線607を介して制御装置300に転送され、ロボット200の制御に用いられる。   As a robot language, a standard SLIM-compliant grammar is used. The mechanical information 701, the teaching point information 702, and the robot program (not shown) created by the robot program creation device 400 are transferred to the control device 300 via the communication line 607 and used for controlling the robot 200.

制御装置300は、ロボット制御モジュール704や、ロボットプログラム作成装置400と同様、逆運動学計算モジュール705及び教示点間補間モジュール706を備える。ロボット制御モジュール704は、ロボットプログラム(不図示)を解釈し、ロボット200の各軸に指令を与えてロボット200を制御する。   Similar to the robot control module 704 and the robot program creation device 400, the control device 300 includes an inverse kinematic calculation module 705 and a teaching point interpolation module 706. The robot control module 704 interprets a robot program (not shown) and gives a command to each axis of the robot 200 to control the robot 200.

第1実施形態においては、ロボットプログラムの作成の前に、CPU401は、ティーチングペンダント421又はHDD404から教示点のデータの入力を受ける(教示点入力工程)。そして、CPU401は、教示点の設定に先立って、教示点が、特異点又はロボット200が他部材に干渉する点(干渉点)に位置するか否かを判断する。   In the first embodiment, before creating a robot program, the CPU 401 receives input of teaching point data from the teaching pendant 421 or the HDD 404 (teaching point input step). Then, prior to setting the teaching point, the CPU 401 determines whether the teaching point is located at a singular point or a point where the robot 200 interferes with another member (interference point).

図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 representative point 203 is positioned at the teaching point P0.

CPU401は、教示点P0,P1,P2,P3を設定する際に教示点そのものが特異点でないことをチェックし、また干渉点でないことをチェックすれば、教示点自体が特異点や干渉点でないことは保証される。   When setting the teaching points P0, P1, P2, and P3, the CPU 401 checks that the teaching point itself is not a singular point, and if it is not an interference point, the teaching point itself is not a singular point or interference point. Is guaranteed.

なお、特異点とは特異姿勢とも呼ばれ、ある関節速度に理論上無限大の速度が求められる姿勢を意味し、ロボット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 robot 200. In the singularity check, whether or not the posture is singular can be determined by solving inverse kinematics for each teaching point and obtaining each joint angle.

干渉点チェックについても同様に各関節角度を求めれば、ワールド座標系Σ1においてメカ情報701及びポリゴン情報703を用いて、ロボット200や治具(他部材)を表現するポリゴン同士の当たり判定(距離チェック)を行うことができる。   Similarly, in the interference point check, if each joint angle is obtained, contact determination between polygons representing the robot 200 and the jig (other member) using the mechanical information 701 and polygon information 703 in the world coordinate system Σ1 (distance check) )It can be performed.

第1実施形態では、ロボット200に対する命令文を組み合わせた、ロボット言語で記述されるロボットプログラムの作成中に、CPU401がロボットプログラムに従うロボット200の動作を検証する。   In the first embodiment, the CPU 401 verifies the operation of the robot 200 according to the robot program while creating the robot program described in the robot language by combining the statements for the robot 200.

以下、第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 robot 200 is to hold a workpiece (not shown) with the end effector 202 positioned at the teaching point P0, and move in the order of the teaching point P1, the teaching point P2, and the teaching point P3 to move the workpiece at the teaching point P3. Assume an operation of releasing (not shown). In the first embodiment, it is assumed that these teaching points have been set before inputting the robot program and the singular point check and interference point check have been cleared.

まず、ロボットプログラム入力前に、CPU401は、複数の教示点を設定する(S1)。このとき、教示点は、特異点や干渉点にならないように設定される。また、CPU401は、動作の始点(例えば教示点P0)を記憶部に記憶させる。   First, before inputting the robot program, the CPU 401 sets a plurality of teaching points (S1). At this time, the teaching point is set so as not to be a singular point or an interference point. In addition, the CPU 401 stores the operation start point (for example, the teaching point P0) in the storage unit.

次に、CPU401は、ロボットプログラムの入力が終了したか否かを判断する(S2)。プログラムの入力を終了するか否かは、ユーザがキーボード423等を使用して入力する。つまり、CPU401は、ユーザの入力操作に応じて、ロボットプログラムの入力が終了したか否かを判断する。CPU401は、ロボットプログラムの入力が終了したと判断した場合(S2:Yes)は、終了状態に遷移し、ロボットプログラムの入力が終了していないと判断した場合(S2:No)は、次のステップS3に遷移する。   Next, the CPU 401 determines whether or not the input of the robot program has been completed (S2). The user inputs whether or not to end the program input using the keyboard 423 or the like. That is, the CPU 401 determines whether or not the input of the robot program has been completed according to the input operation of the user. When the CPU 401 determines that the input of the robot program has ended (S2: Yes), the CPU 401 transitions to the end state, and when it determines that the input of the robot program has not ended (S2: No), the next step Transition to S3.

CPU401は、ユーザがロボットプログラムを構成する命令文や制御文を、キーボード423を用いて入力したり編集したりした場合に、その入力を受ける(S3)。命令文は、動作命令を示す動作命令文やI/O命令を示すI/O命令文などからなる。   The CPU 401 receives an input when the user inputs or edits a command sentence or a control sentence constituting the robot program using the keyboard 423 (S3). The command statement includes an operation command statement indicating an operation command, an I / O command statement indicating an I / O command, and the like.

次に、CPU401は、ステップS3で入力・編集した命令文が動作命令文か否かを判断する(S4)。動作命令文は、例えば、Movs P1(始点(第1教示点)P0から終点(第2教示点)P1に向かって直線補間移動)や、Mov P1(始点P0から終点P1に向ってPTP補間移動)、のようなロボット言語の構文を持っている。   Next, the CPU 401 determines whether or not the command statement input / edited in step S3 is an operation command statement (S4). The motion command statement is, for example, Movs P1 (linear interpolation movement from the start point (first teaching point) P0 to the end point (second teaching point) P1) or Mov P1 (PTP interpolation movement from the starting point P0 to the end point P1) ), Have a robot language syntax like

ここで、始点とは現在ロボット200が移動している教示点を意味し、終点とは次にロボット200が移動する教示点を意味する。なお、ロボットプログラム作成段階ではロボット200は移動しないので、仮想的に移動する場合を想定している。   Here, the start point means a teaching point where the robot 200 is currently moving, and the end point means a teaching point where the robot 200 moves next. Since the robot 200 does not move at the robot program creation stage, it is assumed that the robot 200 moves virtually.

動作命令文には、動作軌道を作成する補間方法(直線補間や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 CPU 401 receives an operation command statement, the CPU 401 operates between the currently stored start point (for example, the teaching point P0) and the end point described in the operation command statement (for example, the teaching point P1). Generate a trajectory. Then, the CPU 401 calculates a plurality of interpolation points on the motion trajectory (interpolation point calculation step). These interpolation points are calculated by equally dividing the teaching points P1 and P2 by a predetermined number of divisions (for example, dividing at intervals of 2 [ms]).

次に、CPU401は、複数の補間点のうち、ロボット200の特異点又は干渉点と重なる(一致する)補間点(以下、「重合補間点」という)が存在するか否かを判断する(S6:判断工程)。つまり、補間点に特異点や干渉点が存在するか否かを判断する。このように、ステップS6では、複数の補間点の各点について、特異点であるか、干渉点であるかをチェックする(特異点チェック及び干渉点チェック)。   Next, the CPU 401 determines whether there is an interpolation point (hereinafter referred to as “overlapping interpolation point”) that overlaps (coincides with) the singular point or interference point of the robot 200 among the plurality of interpolation points (S6). : Judgment process). That is, it is determined whether or not there is a singular point or an interference point at the interpolation point. Thus, in step S6, each point of the plurality of interpolation points is checked whether it is a singular point or an interference point (singular point check and interference point check).

CPU401は、ステップS6における判断結果をユーザに報知(提示)する(S7、S8:判断結果報知工程)。具体的には、CPU401は、モニタ422に判断結果を表示させる。つまり、CPU401は、重合補間点が存在すると判断した場合(S6:Yes)は、その旨をモニタ422に表示させ(S7)、重合補間点が存在しないと判断した場合(S6:No)は、その旨をモニタ422に表示させる(S8)。   The CPU 401 notifies (presents) the determination result in step S6 to the user (S7, S8: determination result notification step). Specifically, the CPU 401 displays the determination result on the monitor 422. That is, when the CPU 401 determines that there is an overlap interpolation point (S6: Yes), the CPU 422 displays that fact (S7), and when it determines that there is no overlap interpolation point (S6: No), That effect is displayed on the monitor 422 (S8).

即ち、複数の補間点のなかに特異点又は干渉点が存在すれば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 HDD 404 as a new start point. The process proceeds to step S2. If the answer is No in step S6, step S8 may be omitted and the process may proceed to step S2.

ステップ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 program creation device 400 in which the program 430 is installed. FIG. 6A shows a state before the program 430 is started, and FIG. 6B shows a state where the program 430 is started. A state in which the user is performing an input operation is shown.

図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 program 430 is activated, A window stands up.

図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 line number 1, a movement command sentence “Movs P1” is described in which linear interpolation movement is performed from the current teaching point (first teaching point) P0 to the next teaching point (second teaching point) P1. When the user performs the description using the keyboard 423 and operates an execution key (for example, the Enter key), the CPU 401 inside the apparatus main body 411 performs a trajectory calculation to perform a singular point check and an interference point check. As a result, since there was no problem, “OK” is displayed on the monitor 422.

行番号2ではI/O命令文(つまり、動作命令ではない)「Out」が記述されているので、チェックは行われない。行番号3では、行番号1と同様である。行番号4では、現在の教示点(第1教示点)P2から次の教示点(第2教示点)P3へ直線補間移動せよ、という命令文「Movs P3」が記述される。そして、CPU401で特異点及び干渉点チェックが行われた結果、補間点が重なるため「NG」の表示がなされている。このように、移動命令文1行ごとに動作軌道を生成して補間点を算出し、各補間点が特異点又は干渉点と重なり合うか否かを判断する。   In line number 2, since the I / O command statement (that is, not an operation command) “Out” is described, no check is performed. Line number 3 is the same as line number 1. In line number 4, a command sentence “Movs P3” for linear interpolation movement from the current teaching point (first teaching point) P2 to the next teaching point (second teaching point) P3 is described. As a result of checking the singular point and the interference point by the CPU 401, “NG” is displayed because the interpolation points overlap. In this way, an operation trajectory is generated for each movement command statement to calculate an interpolation point, and it is determined whether each interpolation point overlaps with a singular point or an interference point.

以上、第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 monitor 422, so that errors due to the singular point or the interference point can be avoided before the actual machine operation is confirmed.

[第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 CPU 401 which is the calculation unit, that is, the contents of the program 430 are different. Will be described.

図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 CPU 401 determines in step S16 that a singular point or interference point exists at the interpolation point (S16: Yes), the CPU 401 warns the user that a singular point or interference point exists in the interpolation point, and performs another interpolation. The user is presented to designate a method (S19: interpolation method presenting step).

例えばCPU401は、動作命令としてPTP補間を使用していて警告を出した場合、ユーザに対して直線補間による補間方法を試すよう提案する。警告の方法としては、モニタ422において、該当行をハイライト表示したり、ポップアップによって表示したりしても良い。   For example, if the CPU 401 uses PTP interpolation as an operation command and issues a warning, the CPU 401 suggests that the user try an interpolation method using linear interpolation. As a warning method, the monitor 422 may highlight the corresponding line or display it in a pop-up.

次に、CPU401は、ユーザがロボットプログラムの入力を終了したか否かを判断する(S20)。例えばCPU401は、PTP補間命令を使用して警告を出した後に、まだ直線補間命令を試していない場合などは、入力を終了していないと判断する(S20:No)。また例えばCPU401は、PTP補間命令を使用して警告を出した後に、直線補間命令を使用しても再度警告が出た場合などは、補間方法の変更では特異点・干渉点の回避は不可能であると判断して、入力終了と判断し(S20:Yes)、終了状態に遷移する。   Next, the CPU 401 determines whether or not the user has finished inputting the robot program (S20). For example, after issuing a warning using the PTP interpolation command, the CPU 401 determines that the input has not been completed when the linear interpolation command has not been tried (S20: No). In addition, for example, if the CPU 401 issues a warning using the PTP interpolation command and then issues a warning again even if the linear interpolation command is used, it is impossible to avoid singular points and interference points by changing the interpolation method. It is determined that the input is completed (S20: Yes), and the state transits to the end state.

CPU401は、別の補間方法をユーザに提示した後、ユーザが別の補間方法を指定するのを待ち受け(S21)、ユーザにより別の補間方法が指定されたら、ステップS15に遷移する。   After presenting another interpolation method to the user, the CPU 401 waits for the user to specify another interpolation method (S21). If another interpolation method is specified by the user, the process proceeds to step S15.

このように第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 CPU 401 as the calculation unit, that is, the contents of the program 430 are different. A different part from 2 embodiment is demonstrated.

図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 CPU 401 determines whether or not it is an operation command sentence that has received the input (S34). At this time, as the operation command statement, in the first and second embodiments, the command specifying the interpolation method is included. In the third embodiment, the command specifying the interpolation method is included in the operation command statement. There is no need to be.

CPU401は、動作命令文ではない場合(S34:No)、ステップS32に遷移する。CPU401は、動作命令文である場合(S34:Yes)、互いに異なる複数の補間方法で始点(第1教示点)と終点(第2教示点)との間の動作軌道を複数生成し、各動作軌道に対して複数の補間点を算出する(S35:補間点算出工程)。例えばCPU401は、PTP補間と直線補間の双方で教示点間の補間を行う。   If the CPU 401 is not an operation command statement (S34: No), the process proceeds to step S32. When the CPU 401 is an operation command statement (S34: Yes), the CPU 401 generates a plurality of operation trajectories between the start point (first teaching point) and the end point (second teaching point) by using a plurality of different interpolation methods. A plurality of interpolation points are calculated for the trajectory (S35: interpolation point calculation step). For example, the CPU 401 performs interpolation between teaching points by both PTP interpolation and linear interpolation.

次に、CPU401は、各動作軌道における各補間点の特異点チェック及び干渉点チェックを行う(S36:判断工程)。その結果、どちらか一方の補間方法を用いた場合に補間点のなかに特異点や干渉点が存在し、他方の補間方法を用いた場合には特異点や干渉点は存在しなかったとする。   Next, the CPU 401 performs a singular point check and an interference point check of each interpolation point in each motion trajectory (S36: determination step). As a result, it is assumed that there is a singular point or interference point among the interpolation points when one of the interpolation methods is used, and no singular point or interference point exists when the other interpolation method is used.

次に、CPU401は、ステップS36でのチェック結果をユーザに提示する(S37:動作軌道提示工程)。具体的には、CPU401は、ステップS36における判断の結果、複数の動作軌道のうち、特異点又は干渉点に重なる重合補間点がない動作軌道を、モニタ422に表示してユーザに提示する。   Next, the CPU 401 presents the check result in step S36 to the user (S37: motion trajectory presenting step). Specifically, as a result of the determination in step S <b> 36, the CPU 401 displays, on the monitor 422, and presents to the user an operation trajectory that has no overlapping interpolation point that overlaps with a singular point or an interference point.

次に、CPU401は、ユーザによる補間方法の選択を待ち受けて、ユーザにより補間方法が選択されたら、補間方法を確定し、ステップS32の処理に遷移する(S38)。   Next, the CPU 401 waits for the user to select an interpolation method. When the user selects an interpolation method, the CPU 401 determines the interpolation method and transitions to the process of step S32 (S38).

以上第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 CPU 401 which is a calculation unit, that is, the contents of the program 430 are different. A different part from 3 embodiment is demonstrated.

図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 CPU 401 determines in step S46 that there is a superposition interpolation point, the CPU 401 prompts the user to correct the end point (second teaching point) (S47: teaching point correction step). Alternatively, when the CPU 401 determines in step S46 that there is an overlap interpolation point, the CPU 401 prompts the user to add an intermediate teaching point between the start point (first teaching point) and the end point (second teaching point) (S47). : Teaching point addition process). In other words, regardless of which interpolation method is used, the user is warned that there are singular points and interference points among the interpolation points, and the user is prompted to correct or add the end point. As a warning method, the corresponding line may be highlighted or displayed in a pop-up.

CPU401は、ユーザによる教示点の修正(例えば教示点P1の位置を修正)や、追加(例えば教示点P1近傍に教示点P4を追加)を行い、ステップS42の処理に遷移する。教示点の修正・追加の際には特異点チェック、干渉点チェックが行われる。つまり、CPU401は、ユーザがステップS47により促されて終点(第2教示点)を修正した場合、ステップS45では、CPU401が再度、複数の補間点を算出し、ステップS46では、CPU401が再度、重合補間点が存在するか否かを判断する。   The CPU 401 corrects the teaching point by the user (for example, corrects the position of the teaching point P1) or adds (for example, adds the teaching point P4 in the vicinity of the teaching point P1), and transitions to the process of step S42. A singular point check and an interference point check are performed when the teaching point is corrected or added. That is, when the user is prompted by step S47 to correct the end point (second teaching point), in step S45, the CPU 401 again calculates a plurality of interpolation points, and in step S46, the CPU 401 again superimposes. It is determined whether an interpolation point exists.

或いは、CPU401は、ステップS47により促されて中間教示点が追加された場合、ステップS45では、中間教示点を新たな終点(第2教示点)とし、始点(第1教示点)と終点との間の動作軌道を生成して該動作軌道上の複数の補間点を算出する。そして、CPU401は、ステップS46では、再度、重合補間点が存在するか否かを判断する。   Alternatively, when an intermediate teaching point is added in response to the prompt in step S47, the CPU 401 sets the intermediate teaching point as a new end point (second teaching point) and sets the starting point (first teaching point) and the end point in step S45. A motion trajectory is generated in between, and a plurality of interpolation points on the motion trajectory are calculated. In step S46, the CPU 401 determines again whether or not there is an overlap interpolation point.

このように第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 CPU 401 which is a calculation unit, that is, the content of the program 430 is different. A different part from 4 embodiment is demonstrated.

第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 CPU 401 operates the teaching pendant 421, receives input of teaching point data as an end point from the teaching pendant 421, and sets a teaching point (for example, teaching point P1) as the end point (S54: teaching). Point input process). At this time, a singular point check and an interference point check are performed, and teaching points are set so as not to be singular points and interference points. The CPU 401 receives an input from the teaching pendant 421, and sets the first teaching point P0 as the first teaching point prior to the teaching point P1. When the starting point (first teaching point) is updated to the teaching point P1, only the teaching point P2 that is the end point (second teaching point) has to be set.

教示点間の補間点が特異点又は干渉点である場合、CPU401は、終点(第2教示点)の修正をユーザに促す(S57:教示点修正工程)。具体的には、CPU401は、チェック結果として、重合補間点が存在する、即ち複数の補間点のうち特異点又は干渉点に重なる補間点が存在する旨をモニタ422に表示させる。   When the interpolation point between the teaching points is a singular point or an interference point, the CPU 401 prompts the user to correct the end point (second teaching point) (S57: teaching point correcting step). Specifically, the CPU 401 causes the monitor 422 to display, as a check result, that there is an overlapped interpolation point, that is, an interpolation point that overlaps a singular point or an interference point among a plurality of interpolation points.

次に、CPU401は、ロボットプログラムの入力を終了するか否かを判断する(S58)。   Next, the CPU 401 determines whether or not to end the input of the robot program (S58).

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 CPU 401 ends the input by the user's selection (S58: Yes) and transitions to the end state. . When the teaching point is to be corrected, the input is not terminated by the user's selection (S58: No), and the process proceeds to step S59.

次に、CPU401は、ユーザによる教示点の修正を待ち受けて、ユーザにより教示点が修正されたら、修正を確定し、ステップS55の処理に遷移する(S59)。教示点の修正の際には特異点チェック、干渉点チェックが行われる。   Next, the CPU 401 waits for the correction of the teaching point by the user. When the teaching point is corrected by the user, the CPU 401 determines the correction and proceeds to the process of step S55 (S59). When the teaching point is corrected, a singular point check and an interference point check are performed.

このように第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 control device 300 has been described. However, the present invention is not limited to this, and the control device 300 may also serve as the robot program creation device.

また、上記実施形態では、ティーチングペンダント421を用いて教示点の入力を行う場合について説明したが、他の入力装置(操作装置)、例えばキーボード423を用いて教示点の入力を行うようにしてもよい。   In the above embodiment, the teaching point is input using the teaching pendant 421. However, the teaching point may be input using another input device (operation device), for example, the keyboard 423. Good.

また、上記実施形態の各処理動作は具体的には演算部としてのCPU401により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を装置本体411に供給し、装置本体411のコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。   Further, each processing operation of the above-described embodiment is specifically executed by the CPU 401 as a calculation unit. Accordingly, a recording medium in which a program that realizes the above-described function is recorded is supplied to the apparatus main body 411, and a computer (CPU or MPU) of the apparatus main body 411 reads and executes the program stored in the recording medium. May be. In this case, the program itself read from the recording medium realizes the functions of the above-described embodiments, and the program itself and the recording medium recording the program constitute the present invention.

また、上記実施形態では、コンピュータ読み取り可能な記録媒体がHDD404であり、HDD404にプログラム430が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図2に示すROM402、記録ディスク431、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、書き換え可能な不揮発性のメモリ(例えばUSBメモリ)、ROM等を用いることができる。   In the above embodiment, the computer-readable recording medium is the HDD 404, and the program 430 is stored in the HDD 404. However, the present invention is not limited to this. The program may be recorded on any recording medium as long as it is a computer-readable recording medium. For example, as a recording medium for supplying the program, the ROM 402, the recording disk 431, an external storage device (not shown) and the like shown in FIG. 2 may be used. As a specific example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a rewritable nonvolatile memory (for example, a USB memory), a ROM, etc. Can be used.

また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。   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 SYMBOLS 100 ... Robot system, 200 ... Robot, 400 ... Robot program production apparatus, 401 ... CPU (calculation part), 421 ... Teaching pendant (teaching part)

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に記載のロボットプログラム作成方法。   The robot program creation method according to claim 1, wherein the calculation unit includes a determination result notification step of notifying a user of a determination result in the determination step. 前記動作命令文には、前記動作軌道を作成する補間方法を指定する命令が含まれており、
前記補間点算出工程では、前記演算部が、前記動作命令文により指定された補間方法で前記第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:
前記演算部が、前記判断工程において前記重合補間点が存在すると判断した場合、前記補間方法とは別の補間方法を指定するようユーザに提示する補間方法提示工程を備えたことを特徴とする請求項3に記載のロボットプログラム作成方法。   An interpolation method presenting step of presenting to a user to designate an interpolation method different from the interpolation method when the arithmetic unit determines that the overlapped interpolation point exists in the determination step. Item 4. The robot program creation method according to Item 3. 前記演算部が、前記判断工程において前記重合補間点が存在すると判断した場合、前記第2教示点の修正をユーザに促す教示点修正工程を備えたことを特徴とする請求項1乃至4のいずれか1項に記載のロボットプログラム作成方法。   5. The teaching point correcting step according to claim 1, further comprising a teaching point correcting step that prompts a user to correct the second teaching point when the arithmetic unit determines that the overlapping interpolation point exists in the determining step. The robot program creation method according to claim 1. 前記教示点修正工程にて前記第2教示点が修正された場合、前記補間点算出工程では、前記演算部が再度、前記複数の補間点を算出し、前記判断工程では、前記演算部が再度、前記重合補間点が存在するか否かを判断することを特徴とする請求項5に記載のロボットプログラム作成方法。   When the second teaching point is corrected in the teaching point correction step, in the interpolation point calculation step, the calculation unit calculates the plurality of interpolation points again, and in the determination step, the calculation unit again 6. The robot program creation method according to claim 5, wherein it is determined whether or not the overlapping interpolation point exists. 前記演算部が、前記判断工程において前記重合補間点が存在すると判断した場合、前記第1教示点と前記第2教示点との間に中間教示点を追加するのをユーザに促す教示点追加工程を備えたことを特徴とする請求項1乃至6のいずれか1項に記載のロボットプログラム作成方法。   A teaching point adding step for urging the user to add an intermediate teaching point between the first teaching point and the second teaching point when the arithmetic unit determines that the overlapping interpolation point exists in the determining step The robot program creation method according to any one of claims 1 to 6, further comprising: 前記教示点追加工程にて前記中間教示点が追加された場合、前記補間点算出工程では、前記演算部が、前記中間教示点を新たな前記第2教示点として、再度、前記第1教示点と前記第2教示点との間の動作軌道を生成して該動作軌道上の前記複数の補間点を算出し、前記判断工程では、前記演算部が再度、前記重合補間点が存在するか否かを判断することを特徴とする請求項7に記載のロボットプログラム作成方法。   When the intermediate teaching point is added in the teaching point adding step, in the interpolation point calculating step, the arithmetic unit again uses the intermediate teaching point as the new second teaching point and re-enters the first teaching point. And a plurality of interpolation points on the movement trajectory are calculated, and in the determination step, the calculation unit again determines whether or not the overlapping interpolation point exists. The robot program creation method according to claim 7, wherein: 前記補間点算出工程では、前記演算部が、互いに異なる複数の補間方法で前記第1教示点と前記第2教示点との間の前記動作軌道を複数生成し、前記各動作軌道に対して前記複数の補間点を算出することを特徴とする請求項1乃至8のいずれか1項に記載のロボットプログラム作成方法。   In the interpolation point calculating step, the calculation unit generates a plurality of motion trajectories between the first teaching point and the second teaching point by a plurality of mutually different interpolation methods, and for each motion trajectory, The robot program creation method according to claim 1, wherein a plurality of interpolation points are calculated. 前記演算部が、前記判断工程における判断の結果、前記複数の動作軌道のうち、前記重合補間点がない動作軌道をユーザに提示する動作軌道提示工程を備えたことを特徴とする請求項9に記載のロボットプログラム作成方法。   The operation unit includes an operation trajectory presenting step of presenting to the user an operation trajectory without the overlapping interpolation point among the plurality of operation trajectories as a result of the determination in the determination step. The robot program creation method described. ロボットに教示する第1教示点及び第2教示点の入力操作が可能な教示部と、
前記ロボットに対する命令文を組み合わせたロボットプログラムの入力操作が可能な操作部と、
前記操作部から前記ロボットプログラムの入力を受け、前記ロボットプログラムに従う前記ロボットの動作を検証する演算部と、を備え、
前記演算部は、
前記命令文のうち、前記第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.
コンピュータに請求項1乃至10のいずれか1項に記載のロボットプログラム作成方法の各工程を実行させるためのプログラム。   The program for making a computer perform each process of the robot program creation method of any one of Claims 1 thru | or 10. 請求項12に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the program according to claim 12 is recorded.
JP2013239866A 2013-11-20 2013-11-20 Robot program creation method, robot program creation device, program, and recording medium Pending JP2015098076A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (9)

* Cited by examiner, † Cited by third party
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