JPH04347703A - Controller for multiaxial robot - Google Patents
Controller for multiaxial robotInfo
- Publication number
- JPH04347703A JPH04347703A JP14812191A JP14812191A JPH04347703A JP H04347703 A JPH04347703 A JP H04347703A JP 14812191 A JP14812191 A JP 14812191A JP 14812191 A JP14812191 A JP 14812191A JP H04347703 A JPH04347703 A JP H04347703A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- program
- joint
- unit
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【0001】0001
【産業上の技術分野】本発明は、ロボットのリンク構造
をプログラミング言語によって記述してこれを管理し、
言語化されたロボットの構造を解析することによって座
標変換モジュールを作成してロボットの数値制御装置内
の記憶部に転送することで、リンク構造を自由に変化さ
せることができるようにして、ロボットの制御に柔軟に
対応することができるようにした新規な多軸ロボットの
数値制御装置に関するものである。[Industrial technical field] The present invention describes and manages the link structure of a robot using a programming language.
By analyzing the verbalized structure of the robot, a coordinate transformation module is created and transferred to the memory in the robot's numerical control device, making it possible to freely change the link structure and improve the robot's performance. This invention relates to a new numerical control device for a multi-axis robot that can flexibly respond to control.
【0002】0002
【従来の技術】近年の産業用ロボット分野における技術
革新により、産業用ロボットは小型化、汎用化が進み、
所謂FMS(多品種少量生産システム)において加工要
素の一単位として用いられることが多くなってきた。[Background Art] Due to recent technological innovations in the field of industrial robots, industrial robots have become smaller and more versatile.
It is increasingly being used as a unit of processing element in so-called FMS (high-mix, low-volume production system).
【0003】FMSにおいては同一の加工ステーション
が生産品種によって全く異なった作業をするものである
ことから、ロボットアームの先端部に付設する加工工具
も生産品種毎に多種多様であり、ロボットの加工手順を
記述したプログラム(以下、「ロボットプログラム」と
言う。)も生産品種毎に相違する。従って、生産品種を
替える場合にはその度にロボットプログラムを取り替え
ることによって対処することができるようになっている
。[0003] In FMS, the same processing station performs completely different tasks depending on the product type, so the processing tools attached to the tip of the robot arm also vary depending on the product type, and the processing steps of the robot are different. The program that describes this (hereinafter referred to as the "robot program") also differs depending on the product type. Therefore, when changing the product type, the robot program can be changed each time.
【0004】0004
【発明が解決しようとする課題】しかし、ロボットプロ
グラムの作成は加工工具の如何に依存することが多く、
この為、生産品種が新たに追加される度にプログラムの
大幅な変更を余儀なくされ、各ロボットの付近でプログ
ラミングを行わなければならない状況である。[Problem to be solved by the invention] However, the creation of robot programs often depends on the type of processing tool.
For this reason, each time a new product type is added, the program must be changed significantly, and programming must be done near each robot.
【0005】よって、プログラミングに相当の時間をか
けなければならず、その間ロボットを停止させなければ
ならないという問題がある。[0005] Therefore, there is a problem in that a considerable amount of time must be spent on programming, and the robot must be stopped during this time.
【0006】また、生産品種が増えることによって、ロ
ボットプログラムの数が増加していくが、同一の生産品
種であっても加工工具に変更があった場合には、その作
用点の座標が変化することに伴うロボットプログラムの
変更を要し、これを各ロボットの数値制御装置に登録し
なければならないので、必ずしも効率の良い作業とは言
えない状況である。[0006] Furthermore, as the number of production types increases, the number of robot programs increases, but even if the production type is the same, if there is a change in the machining tool, the coordinates of the point of action will change. This requires changes to the robot program, which must be registered in the numerical control device of each robot, which is not necessarily an efficient process.
【0007】そこで、加工工具用のライブラリーサブル
ーチンを使用してロボットプログラムの統一を図ろうと
する例もあるが、結局は主プログラムを変更せずにリン
カーによってライブラリーサブルーチンを結合する方法
を採っているために、管理すべきロボットプログラムの
数が減るわけではない。[0007] Therefore, there are examples of attempts to unify robot programs by using library subroutines for machining tools, but in the end, the method of combining library subroutines using a linker without changing the main program is adopted. This does not reduce the number of robot programs to be managed.
【0008】[0008]
【課題を解決するための手段】本発明多軸ロボットの制
御装置は上記した課題を解決するために、先ず、プログ
ラミング部により多軸ロボットのリンク構成を記述する
プログラムを作成し、該プログラム中においてロボット
の関節毎に設定された座標系間の相対的な位置関係を示
すパラメーターに基づいて、ロボットの各関節の変位や
姿勢を示す情報と、ロボットの手先位置をロボットの特
定の関節軸に固定した基準座標系で表現した情報との間
で相互に座標変換を行なうための変換用プログラムを生
成して、これをロボットの数値制御部で動作しうる命令
語に変換する。[Means for Solving the Problems] In order to solve the above-mentioned problems, the multi-axis robot control device of the present invention first creates a program that describes the link configuration of the multi-axis robot using a programming section, and then Based on parameters that indicate the relative positional relationship between coordinate systems set for each joint of the robot, information indicating the displacement and posture of each joint of the robot and the position of the robot's hand are fixed to a specific joint axis of the robot. A conversion program is generated to mutually perform coordinate conversion with the information expressed in the reference coordinate system, and this is converted into command words that can be operated by the numerical control unit of the robot.
【0009】そして、プログラミング部により生成され
た変換用プログラムを数値制御部に引き渡して、この変
換用プログラムに従ってロボットの各関節の状態から得
られる手先位置の情報又はロボットの手先位置から得ら
れる各関節の状態を示す情報に基づいてロボットの位置
決め制御を行なうようにしたものである。Then, the conversion program generated by the programming section is delivered to the numerical control section, and according to the conversion program, information on the hand position obtained from the state of each joint of the robot or each joint obtained from the position of the robot's hand is generated. The positioning of the robot is controlled based on information indicating the state of the robot.
【0010】0010
【作用】本発明によれば、ロボットのリンク構造をプロ
グラムにより記述して、該プログラムに基づいてロボッ
トの位置及び姿勢に関する座標変換用プログラムを生成
しロボットの数値制御部に転送することで、リンク構造
の改変に対して柔軟に対処することができるので、ロボ
ットのリンク構造を組み替えたり加工工具を変更しても
ロボットの動作を記述するプログラムには何等の変更を
加える必要がなく、ロボット動作に係るプログラムの数
を低減し、その管理や保守に要する労力を軽減すること
ができる。[Operation] According to the present invention, the link structure of the robot is described by a program, and a coordinate transformation program regarding the position and orientation of the robot is generated based on the program and transferred to the numerical control section of the robot. Since it is possible to flexibly deal with changes in the structure, even if the link structure of the robot is rearranged or the machining tools are changed, there is no need to make any changes to the program that describes the robot's motion, and the robot's motion will be improved. The number of such programs can be reduced, and the effort required for their management and maintenance can be reduced.
【0011】[0011]
【実施例】以下に、本発明多軸ロボットの制御装置を図
示した実施例に従って説明する。DESCRIPTION OF THE PREFERRED EMBODIMENTS The control device for a multi-axis robot according to the present invention will be explained below according to the illustrated embodiments.
【0012】図1は、本発明に係るシステムのハードウ
ェアの構成例を示すものである。FIG. 1 shows an example of the hardware configuration of a system according to the present invention.
【0013】FMS環境下で使用されるロボットは、動
作自由度を増加できるように結合部材を有し少なくとも
ひとつ以上の腕部の組み合わせにより構成され、かつ、
作用端を有する「モジュール型ロボットユニット」を前
提にしている。この「モジュール型ロボットユニット」
は、モジュール組立型ロボットとも呼ばれるべきもので
あり、ロボットのリンク構造をユーザーが自由に改変す
ることができるように構成されたロボットである。但し
、後述する逆運動学問題の解についての保証という点か
ら、現在では予め決められた所定の組み合せに限ってい
る。[0013] A robot used in an FMS environment has a connecting member so as to increase the degree of freedom of movement, and is composed of a combination of at least one or more arm parts, and
It is based on a "modular robot unit" that has a working end. This "modular robot unit"
This is also called a modular assembly type robot, and is a robot configured so that the link structure of the robot can be freely modified by the user. However, from the viewpoint of guaranteeing the solution to the inverse kinematics problem described later, this is currently limited to predetermined combinations.
【0014】ロボット1は数値制御装置2のサーボユニ
ット3から送られてくる位置等の指示に基づいてロボッ
トプログラムに従った動作を行なうようになっている。
ここで、サーボ制御はロボット1の自由度毎にかけられ
ており、原点復帰動作を行なうために速度指示にも対応
しうるようになっている。The robot 1 is designed to perform operations according to a robot program based on instructions such as position sent from the servo unit 3 of the numerical control device 2. Here, servo control is applied to each degree of freedom of the robot 1, and can also respond to speed instructions in order to perform a return-to-origin operation.
【0015】数値制御装置2内では、LAN・I/F(
インターフェース)4等においてなされるDMA(ダイ
レクトメモリーアクセス)等の場合を除いて、CPU5
が処理を取り仕切っている。CPU5は基本的にはイン
テル社80960やモトローラ社68030等の汎用の
もので足り、制御プログラム記憶部6に予め記録されて
いる制御手順に基づいて動作する。[0015] Inside the numerical control device 2, a LAN I/F (
Except for cases such as DMA (direct memory access) performed in interface) 4, etc.,
is in charge of the process. Basically, the CPU 5 can be a general-purpose CPU such as Intel 80960 or Motorola 68030, and operates based on a control procedure recorded in advance in the control program storage section 6.
【0016】LAN・I/F4は、高速データーバスた
るLAN基幹線7と数値制御装置2とを結び、パケット
転送制御などの処理を行なうための部分であり、ロボッ
ト1の動作内容を記述したロボットプログラムや、ロボ
ット1のリンク構造を記述したプログラム(以下、「モ
ジュール構成プログラム」という。)がLAN基幹線7
を介して転送されてくる。The LAN I/F 4 is a part that connects the LAN trunk line 7, which is a high-speed data bus, and the numerical control device 2, and performs processing such as packet transfer control. The program and the program that describes the link structure of the robot 1 (hereinafter referred to as the "module configuration program") are connected to the LAN backbone 7.
It is transferred via.
【0017】8はロボットプログラム記憶部であり、ロ
ボットプログラムが2つの態様で記録される。Reference numeral 8 denotes a robot program storage section, in which robot programs are recorded in two ways.
【0018】第1の記録態様は、CPU5が動作可能な
言語、即ち、機械語での記録態様である。この場合には
ロボット1の動作を開始するときに記録内容がそのまま
CPU5によって解釈された後実行され、サーボユニッ
ト3を通してロボット1の動作が実現される。本態様は
所謂コンパイラ方式と呼ばれ、ロボットプログラム中に
複雑な数値計算を含むものについてこれを高速に実行す
ることができるという利点があるが、高級言語を機械語
に変換するためのコンパイル処理を要する。The first recording mode is a recording mode in a language in which the CPU 5 can operate, that is, machine language. In this case, when the operation of the robot 1 is started, the recorded contents are interpreted as they are by the CPU 5 and then executed, and the operation of the robot 1 is realized through the servo unit 3. This method is called the so-called compiler method, and has the advantage of being able to quickly execute robot programs that include complex numerical calculations. It takes.
【0019】また、第2の記録態様はCPU5を直接に
は動作させることはできないが、予め決められた文法に
従う記録態様である。この場合、制御プログラム記憶部
6には、文法に従い、記録内容に基づくロボット動作を
実現できるように逐次解釈手順が機械語で記述されてい
て、該手順に基づいてCPU5がロボットプログラム記
憶部8からロボットの動作手順を読み出して実行する。The second recording mode does not allow the CPU 5 to operate directly, but is a recording mode that follows a predetermined grammar. In this case, the control program storage unit 6 has a sequential interpretation procedure described in machine language in accordance with the grammar so as to realize robot motion based on the recorded contents, and based on the procedure, the CPU 5 reads the robot program storage unit 8 from the robot program storage unit 8. Read and execute the robot's operating procedures.
【0020】本手法は所謂インタープリター方式とも呼
ばれるものであって、逐次解釈をプログラムにより行な
う方式であるため、一般的に実行速度が遅いという欠点
(但し、ロボット自体の動作に関して実行の完了に相当
時間を要するため、ロボットプログラムの実行という観
点からはこの欠点はあまり目立たない。)が指摘される
が、機械語へのコンパイル処理を要しないためその取扱
いが容易であるという利点がある。[0020] This method is also called the so-called interpreter method, and since it is a method in which interpretation is performed sequentially using a program, the disadvantage is that the execution speed is generally slow (however, the execution speed is generally slow (however, the execution speed is slow when the robot itself is operated). (This drawback is not very noticeable from the viewpoint of robot program execution because it takes time.) However, it has the advantage that it is easy to handle because it does not require compiling into machine language.
【0021】本実施例においてはいずれの記録態様も用
いることができる。[0021] In this embodiment, any recording mode can be used.
【0022】制御プログラム記憶部6には、通常、電源
供給のない時でもその内容が消えない読み出し専用のメ
モリーデバイス(ROM)が使用される。制御プログラ
ム記憶部6には所謂システムプログラムが記憶されてお
り、CPU5、LAN・I/F4等の初期化を行なう手
順や、インタープリター方式における逐次解釈手順及び
該解釈結果に応じた実行手順等が記憶されている。この
ような手順はCPU5が理解できる機械語で記述されて
おり、直接CPU5により呼び出された後実行されると
いう性格を有する。[0022] The control program storage section 6 normally uses a read-only memory device (ROM) whose contents do not disappear even when power is not supplied. The control program storage unit 6 stores a so-called system program, which includes procedures for initializing the CPU 5, LAN/I/F 4, etc., sequential interpretation procedures in an interpreter method, and execution procedures according to the interpretation results. remembered. Such a procedure is written in machine language that the CPU 5 can understand, and has the characteristic that it is directly called by the CPU 5 and then executed.
【0023】9は座標変換ユニットであり、ロボットプ
ログラムに基づいてロボット軸座標系(各関節間の相対
的な位置関係をパラメーターで指定することで各アーム
の状態を記述する座標系)とロボットの基軸部に固定し
たデカルト座標系との間の座標変換等を処理する機械語
の変換プロセスを記憶するものである。この変換プロセ
スはロボット動作の実現において必要に応じて逐次呼び
出されるという性質がある。Reference numeral 9 denotes a coordinate conversion unit, which converts the robot axis coordinate system (a coordinate system that describes the state of each arm by specifying the relative positional relationship between each joint with parameters) and the robot based on the robot program. It stores the conversion process of machine language for processing coordinate conversion between the Cartesian coordinate system fixed to the base axis and the like. This conversion process has the property of being called sequentially as necessary in realizing robot motion.
【0024】ここで、座標変換ユニット9は以下の要件
を満たすものとする。Here, it is assumed that the coordinate transformation unit 9 satisfies the following requirements.
【0025】(1)CPU5から見て必ず予め決められ
た番地からその変換プロセスが記述されていること。(1) From the perspective of the CPU 5, the conversion process must always be written starting from a predetermined address.
【0026】(2)変換プロセスが複数ある場合には、
各プロセスについてCPU5から見て必ず予め決められ
た番地から記述されていること。(2) If there are multiple conversion processes,
Each process must be described starting from a predetermined address when viewed from the CPU 5.
【0027】(3)各変換プロセスはそれぞれ1以上の
引数と1以上の返数との関連において規定通りに変換を
行なうが、その際マルコフ性を有しても構わない。即ち
、同一プロセスにおいて以前に呼び出されたときの情報
に基づいて返数を生成する場合も許容するものとする。(3) Each conversion process performs conversion as specified in relation to one or more arguments and one or more return numbers, and may have Markov property. That is, it is also allowed to generate a return number based on information from a previous call in the same process.
【0028】10は工具用サブルーチンユニットであり
、ロボット1の作用端又は任意の位置に取り付けた加工
工具の制御についての機械語プロセスを記憶するもので
ある。Reference numeral 10 denotes a tool subroutine unit, which stores machine language processes for controlling a machining tool attached to the working end of the robot 1 or at an arbitrary position.
【0029】この工具用サブルーチンユニット10にお
いても上記(1)乃至(3)の要件を満たすものとする
。This tool subroutine unit 10 also satisfies the requirements (1) to (3) above.
【0030】尚、座標変換ユニット9と工具用サブルー
チンユニット10との基本的な相違点は、座標変換ユニ
ット9がロボットプログラムの動作手順を実現するため
に使用される必須のユニットであるのに対し、工具用サ
ブルーチンユニット10はロボットプログラムにおいて
工具を使用するという明示的な手順が記載されないとき
には呼び出されることがないという点である。The basic difference between the coordinate transformation unit 9 and the tool subroutine unit 10 is that the coordinate transformation unit 9 is an essential unit used to realize the operating procedure of the robot program. The tool subroutine unit 10 is not called unless an explicit procedure for using a tool is described in the robot program.
【0031】座標変換ユニット9や工具用サブルーチン
ユニット10の構成を図3及び図4に概念的に示す。The configurations of the coordinate transformation unit 9 and the tool subroutine unit 10 are conceptually shown in FIGS. 3 and 4.
【0032】座標変換ユニット9はCPU5上の特定の
アドレスから始まる一連のサブルーチンのパッケージの
態様をとる。The coordinate transformation unit 9 takes the form of a package of a series of subroutines starting from a specific address on the CPU 5.
【0033】具体的には、図3に示すような形式をとる
。即ち、各座標変換モジュールのエントリーへの分岐番
地に続いて座標変換モジュールのプログラムが配置され
ている。尚、座標変換については軸座標とデカルト座標
間での位置や変位についての変換モジュールが設けられ
ている。Specifically, the format is as shown in FIG. That is, the program of the coordinate transformation module is arranged following the branch address to the entry of each coordinate transformation module. Regarding coordinate conversion, a conversion module for position and displacement between axial coordinates and Cartesian coordinates is provided.
【0034】このような形式とすることにより、座標変
換プロセスが仕様変更により変化してもエントリーポイ
ントは変化せず、制御プログラム記憶部6及びロボット
プログラム記憶部8の記憶内容に直接の変更が生じない
ようにすることができる。With this format, even if the coordinate transformation process changes due to a change in specifications, the entry point will not change, and the contents stored in the control program storage unit 6 and robot program storage unit 8 will not be directly changed. You can avoid it.
【0035】工具用サブルーチンユニット10はCPU
5上の特定のアドレスから始まるサブルーチンのパッケ
ージの態様をとり、図4に示すような形式をとる。これ
は、座標変換ユニット9の場合と同じ趣旨による。The tool subroutine unit 10 is a CPU
It takes the form of a package of subroutines starting from a specific address on 5, and has a format as shown in FIG. This is based on the same idea as in the case of the coordinate transformation unit 9.
【0036】尚、座標変換ユニット9では1エントリー
に対してその変換は一意に行なわれていたが、工具用サ
ブルーチンユニット10では唯一のエントリーで全ての
処理がなされる点が相違する。その理由として、一般に
工具はその形態等に応じて、取り扱わなければならない
パラメーターが異なるため、予め用意すべきサブルーチ
ンの数を特定することができないからである。The coordinate conversion unit 9 uniquely performs the conversion for one entry, but the tool subroutine unit 10 differs in that all processing is performed using only one entry. The reason for this is that the number of subroutines that should be prepared in advance cannot be specified because the parameters that must be handled generally differ depending on the shape of the tool.
【0037】座標変換ユニット9や工具用サブルーチン
ユニット10における引数の受け渡しについては、一般
的なプログラムで関数の実現にあたって行なわれている
ように、引数をスタック上に積み上げてサブルーチンに
渡す方法が採られる。引数の数についての制限を事実上
付けないようにすることができるからである。Regarding the passing of arguments in the coordinate transformation unit 9 and the tool subroutine unit 10, a method is adopted in which the arguments are piled up on a stack and passed to the subroutine, as is done when realizing a function in a general program. . This is because there can be virtually no restrictions on the number of arguments.
【0038】次に、上記した構成の数値制御装置2がど
のように稼動するかについて説明する。尚、説明の都合
上、以下に示すロボットプログラムがロボットプログラ
ム記憶部6に記録されているものとする。その形式につ
いてはコンパイラ方式によってもインタープリタ方式に
よっても構わない。Next, how the numerical control device 2 having the above configuration operates will be explained. For convenience of explanation, it is assumed that the robot program shown below is recorded in the robot program storage section 6. The format may be either a compiler method or an interpreter method.
【0039】
行番号 ステートメント10
Point1=(10,20,30)20
Point2=(50,60,70)30 O
N=1
40 OFF=0
50 MOVE Point160 T
OOLS 1,ON
70 MOVE Point280 T
OOLS 1,OFFLine number Statement 10
Point1=(10,20,30)20
Point2 = (50, 60, 70) 30 O
N=1 40 OFF=0 50 MOVE Point160 T
OOLS 1, ON 70 MOVE Point280 T
OOLS 1, OFF
【0040】ここで、「 P
ointX=( , , )」はデカルト座標系
における座標値の定義命令、「PointX=」の「=
」を除く「〜 = 〜」文は数値の代入文、「MO
VE」命令はロボットの作用端を指定位置に移動するた
めの命令、「TOOLS n,ON(又はOFF)」
はn番チャックのON/OFFを制御する命令をそれぞ
れ示している。[0040] Here, "P
ointX=( , , )” is a command to define coordinate values in the Cartesian coordinate system, “=” of “PointX=”
"~ = ~" statements other than "~ = ~" are numerical assignment statements, "MO
VE" command is a command to move the working end of the robot to a specified position, "TOOLS n, ON (or OFF)"
1 and 2 respectively indicate commands for controlling ON/OFF of the n-th chuck.
【0041】先ず、行番号10から40にかけての設定
処理では、Point1の座標値(10,20,30)
とPoint2の座標値(50,60,70)が図示し
ないメモリー中の特定位置に記憶される。そして、数値
変数ON、OFFに整数値が1、0がそれぞれ代入され
て図示しないメモリー中の特定位置に記憶される。First, in the setting process from line numbers 10 to 40, the coordinate values of Point 1 (10, 20, 30)
and the coordinate values (50, 60, 70) of Point 2 are stored in a specific position in a memory (not shown). Then, integer values of 1 and 0 are assigned to the numerical variables ON and OFF, respectively, and are stored in specific locations in the memory (not shown).
【0042】行番号50では「MOVE Point
1」命令によってロボット1の作用端がPoint1の
位置に移動される。[0042] In line number 50, "MOVE Point
1'' command moves the working end of the robot 1 to the Point 1 position.
【0043】ところで、Point1の座標値はデカル
ト座標系での座標値であるため、これをロボット1の軸
座標系での値に変換するために、各軸の位置や姿勢につ
いて計算しなければならない。By the way, since the coordinate values of Point 1 are coordinate values in the Cartesian coordinate system, in order to convert them into values in the axis coordinate system of robot 1, the position and orientation of each axis must be calculated. .
【0044】そこで、先ずPoint1の座標値を引数
として座標変換ユニット9上の「デカルト座標→軸座標
」変換プロセスを呼び出し、変換後に得られた軸座標値
に基づいてサーボユニット3に指令を送ってロボット1
を動作させるという処理を行なう。Therefore, first, the "Cartesian coordinates → axis coordinates" conversion process on the coordinate conversion unit 9 is called with the coordinate value of Point 1 as an argument, and a command is sent to the servo unit 3 based on the axis coordinate value obtained after conversion. robot 1
The process is to run the .
【0045】行番号60の「TOOLS 1,ON」
命令では、工具番号1に対するON制御をする。例えば
、工具番号1の動作内容がワークの掴み制御に係るもの
である場合には該当番号の工具を作動させてワークを掴
む命令となる。命令の実行にあたっては、工具用サブル
ーチンユニット10へのコールという形で具体化され、
そのときの引数を「1,1」としてサブルーチンを呼び
出している。[0045] Line number 60 “TOOLS 1, ON”
The command performs ON control for tool number 1. For example, if the operation content of tool number 1 is related to gripping control of a workpiece, the instruction is to operate the tool with the corresponding number to grip the workpiece. In executing the command, it is embodied in the form of a call to the tool subroutine unit 10,
The subroutine is called with the arguments at that time being "1, 1".
【0046】次に行番号70でのPoint2への移動
動作については行番号50での説明と同様に座標変換ユ
ニット9を用いた処理により具現化される。Next, the moving operation to Point 2 at line number 70 is realized by processing using the coordinate transformation unit 9 in the same manner as described for line number 50.
【0047】そして、行番号80の「TOOLS 1
,OFF」命令によって、工具番号1に対してOFF制
御がなされる。ワークの掴み制御に係る場合には工具が
掴んでいるワークを放す命令となり、行番号60の動作
内容とは相対する処置である。命令の実行にあたって工
具用サブルーチンユニット10へのコールという形で具
体化されることは「TOOLS 1,ON」命令の場
合と同様であるが、その引数については「1,0」とさ
れる。[0047] Then, line number 80 "TOOLS 1
, OFF" command, OFF control is performed for tool number 1. In the case of workpiece gripping control, this is a command to release the workpiece gripped by the tool, and is a countermeasure to the action content of line number 60. The instruction is executed in the form of a call to the tool subroutine unit 10, similar to the "TOOLS 1, ON" instruction, but its arguments are "1, 0".
【0048】上記のようなロボットプログラムはプログ
ラミングユニット11(図1参照)によって作成される
。The robot program as described above is created by the programming unit 11 (see FIG. 1).
【0049】即ち、編集部12によって作成されるロボ
ットプログラムはコンパイル部13に送られて、ここで
CADデータ14を参照しながら機械語に変換された後
にLAN・I/F(インターフェース)15を介してL
AN基幹線7上に乗せられて数値制御装置2に送られる
ようになっている。That is, the robot program created by the editing section 12 is sent to the compiling section 13, where it is converted into machine language while referring to the CAD data 14, and then is sent via the LAN I/F (interface) 15. TeL
It is placed on the AN trunk line 7 and sent to the numerical control device 2.
【0050】次に、「モジュール構成プログラミングユ
ニット」についての説明に移る。Next, we will move on to a description of the "module configuration programming unit."
【0051】この「モジュール構成プログラミングユニ
ット」とは、モジュール構成プログラムから、ロボット
の各自由度における相対位置情報と該作用端の絶対位置
情報との間で相互に変換するための変換用プログラムを
生成し、これを数値制御装置2で動作しうる命令語に変
換するものである。This "module configuration programming unit" generates a conversion program for mutually converting relative position information in each degree of freedom of the robot and absolute position information of the working end from the module configuration program. This is then converted into command words that can be operated by the numerical control device 2.
【0052】前述したようにモジュール構成プログラム
とはロボット1のリンク構造を記述したプログラムであ
るが、具体的には、アーム毎に下記に示すような情報を
記述したもので、高級言語の形式で記述された情報ファ
イルである。As mentioned above, the module configuration program is a program that describes the link structure of the robot 1. Specifically, it describes the information shown below for each arm, and it is written in the form of a high-level language. This is a written information file.
【0053】
a.アームの長さ
b.アームとその位置の基準となるアーム(又は基軸部
)との接続方法
c.接続が回動を伴う軸によってなされている場合にお
いてその回動角と回動パルスとの関係
d.接続が直線移動を伴う軸によってなされている場合
においてその相対移動距離とパルスとの関係a. Arm length b. Connection method between the arm and the arm (or base portion) that serves as a reference for its position c. When the connection is made by a shaft with rotation, the relationship between the rotation angle and the rotation pulse d. Relationship between relative movement distance and pulse when the connection is made by an axis that moves in a straight line
【0054
】例えば、図5に示すような2腕の水平多関節型ロボッ
ト16を想定する。0054
For example, assume a two-arm horizontal articulated robot 16 as shown in FIG.
【0055】即ち、ロボット16は、その基軸部17に
第1アーム18が回動可能な状態で支持されており、こ
の第1アーム18の端部に第2アーム19が回動可能な
状態で取り付けられている。そして、第2アームの先端
部には上下方向にスライド自在な状態でツール搭載軸2
0が取り付けられており、その下端部には、ツール21
、21′を選択的に使用するための回転機構22が設け
られているものとする。That is, the robot 16 has a first arm 18 rotatably supported on its base shaft 17, and a second arm 19 rotatably supported at the end of the first arm 18. installed. At the tip of the second arm, there is a tool mounting shaft 2 that can be slid vertically.
0 is attached, and a tool 21 is attached to its lower end.
, 21' is assumed to be provided with a rotation mechanism 22 for selectively using them.
【0056】この場合のモジュール構成プログラムのリ
スト例を下記に示す。An example of a list of module configuration programs in this case is shown below.
【0057】
リスト例)
ROBOT RobotName(p1,p2,p3
)=ARM1+ARM2+ARM3
−(i
) Construction of ARM1
(p1); −(ii) l
ength=350mm shifted 10m
m; −(iii) Joint to
BASE with 0 degrees,
0 degrees;
−(iv),(v)
Freedom=1000 pulses/1
degree −(vi) Limit
of Freedom(p1)=0 degree
to 270 degrees
−(vi
i) End of ARM1;
Construction of ARM2(
p2); length=250mm shi
fted 15mm; Joint to
ARM1 with 0 degrees,0
degrees
Freedom=1000 pulses/
1 degree; Limit of
Freedom=0 pulse to 270
000 pulses
End of ARM2;
Construction of ARM3(
p3); Extend to ARM2
with 0 degrees,0 de
grees;
−(v)
length=100mm+Freedom(p3
) shifted 70mm;
Freedom =1000 pulse
s/1mm; Limit of Free
dom=0mm to 100mm End
of ARM3
End.List example) ROBOT RobotName (p1, p2, p3
)=ARM1+ARM2+ARM3
−(i
) Construction of ARM1
(p1); -(ii) l
length=350mm shifted 10m
m; -(iii) Joint to
BASE with 0 degrees,
0 degrees;
-(iv),(v)
Freedom=1000 pulses/1
degree - (vi) Limit
of Freedom (p1) = 0 degree
to 270 degrees
-(vi
i) End of ARM1; Construction of ARM2 (
p2); length=250mm
fted 15mm; Joint to
ARM1 with 0 degrees, 0
degrees Freedom=1000 pulses/
1 degree; Limit of
Freedom=0 pulse to 270
000 pulses End of ARM2; Construction of ARM3 (
p3); Extend to ARM2
with 0 degrees, 0 degrees
Grees;
-(v)
length=100mm+Freedom(p3
) shifted 70mm; Freedom =1000 pulse
s/1mm; Limit of Free
dom=0mm to 100mm End
of ARM3 End.
【0058】ここで、上記のリストに記載されたプログ
ラミング言語について各語の意味について説明する。[0058] Here, the meaning of each word regarding the programming languages listed above will be explained.
【0059】(i)「RobotName」はロボット
16の名称である。そして、「ARM1」、「ARM2
」、「ARM3」はロボット16を構成する腕の名称で
あり、「ARM1」が第1アーム18の名称、「ARM
2」が第2アーム19の名称、「ARM3」がツール搭
載軸20の名称である。(i) "RobotName" is the name of the robot 16. Then, “ARM1”, “ARM2”
", "ARM3" is the name of the arm that makes up the robot 16, "ARM1" is the name of the first arm 18, "ARM
2" is the name of the second arm 19, and "ARM3" is the name of the tool mounting shaft 20.
【0060】また、パラメーターp1、p2、p3は、
この順番で軸座標系が構成されることを意味付けための
パラメーターである。尚、ここではp1、p2、・・・
の名称を使っているが、これは単に第1パラメーター、
第2パラメーター・・・というように順序付けの意味を
もった名称なので、axis1、axis2等の別の名
称を用いても勿論構わない。[0060] Moreover, the parameters p1, p2, p3 are as follows:
This is a parameter that gives meaning that the axis coordinate system is constructed in this order. In addition, here p1, p2,...
This is simply the first parameter,
Since the names have the meaning of ordering, such as the second parameter, etc., it is of course possible to use other names such as axis1, axis2, etc.
【0061】ロボット16の構成についての記述は、「
ROBOT」で始まる宣言文と「End.」の宣言終了
文との間でなされる。The description of the configuration of the robot 16 is as follows:
This is done between the declaration sentence starting with ``ROBOT'' and the declaration end sentence ``End.''.
【0062】(ii)各アームの記述は、「Const
ruction of xxxx」から「End
of xxxx」迄の間に記述されている内容によ
って確定される。(ii) The description of each arm is “Const
ruction of xxxx” to “End
It is determined by the contents written up to "of xxxx".
【0063】(iii)「length=・・・」は特
段の明示がない限りそのアームの関節間距離、即ち、回
転関節部と回転関節部との間、又は回転関節部と直動関
節部との間、又は直動関節部と直動関節部との間等の距
離を表わす。(iii) "length=..." is the distance between the joints of the arm, that is, between the rotary joint and the rotary joint, or between the rotary joint and the translational joint, unless otherwise specified. It represents the distance between two translational joints, or between one translational joint and another translational joint.
【0064】上記の例では、第1アーム18についての
関節間の長さが350mmであり、基軸部17に対する
第1アーム18の回動軸方向の変位が10mmであるこ
とを「shifted」により記述している。In the above example, the length between the joints of the first arm 18 is 350 mm, and the displacement of the first arm 18 in the rotation axis direction with respect to the base shaft portion 17 is 10 mm, which is described by "shifted". are doing.
【0065】尚、一のアームが2以上のアームを有する
場合があるが、この場合にはどのパラメーター間の距離
であるかを明示するため、「length(p1)=〜
〜〜shifted〜〜〜」という形式をとる。[0065] Note that one arm may have two or more arms. In this case, in order to clearly indicate which parameter is the distance between them, "length (p1) = ~
It takes the form ``~~shifted~~~~''.
【0066】また、アームの関節部が回動関節でなく直
動関節の構造になっている場合には、「length=
・・・」の定義文にはアームに対する自由度の関係が記
述される。上記の「ARM3」の構成では、「Free
dom(p3)」によってスライド方向への自由度の拡
張が図られており、これはツール搭載軸20にツール2
1、21′を設けられることに伴うストロークの延長を
意味する。[0066] Furthermore, if the joint of the arm has a structure of a translational joint rather than a rotational joint, "length=
The definition sentence "..." describes the relationship of degrees of freedom with respect to the arm. In the above “ARM3” configuration, “Free”
dom(p3)" expands the degree of freedom in the sliding direction. This is because the tool 2 is attached to the tool mounting shaft 20
1, 21' means an extension of the stroke.
【0067】(iv)「BASE」は予約語であり、基
軸部17を意味する。この基軸部17に設定された絶対
(デカルト)座標系が基準座標系とされている。(iv) "BASE" is a reserved word and means the base portion 17. The absolute (Cartesian) coordinate system set on this base portion 17 is the reference coordinate system.
【0068】(v)接続関係の記述には、「Joint
to〜with〜」、又は、「Extend t
o〜with〜」が用いられる。(v) In the description of the connection relationship, “Joint
to~with~” or “Extend t
"o~with~" is used.
【0069】ここで、「Joint to」文はアー
ムが回動関節によって他のアームに接続されていること
を意味し、「Extended to」文はアームが
直動運動によって他のアームに接続されていることを意
味する。Here, the sentence "Joint to" means that an arm is connected to another arm by a rotational joint, and the sentence "Extended to" means that an arm is connected to another arm by a translational motion. It means there is.
【0070】また、「with」以下の部分は、アーム
を取り付ける軸に対してアームがどのような角度をもっ
て接続されるかを確定するために記述される。その表記
は水平面内の極座標で行なうため、2次元で表現される
。尚、ここで基準となる方向ベクトルについては、アー
ムの取り付け軸と同一方向のベクトルを基準として使用
する。Furthermore, the part following "with" is written to determine what angle the arm is connected to with respect to the axis to which the arm is attached. Since the notation is performed using polar coordinates in the horizontal plane, it is expressed in two dimensions. Note that, regarding the reference direction vector here, a vector in the same direction as the attachment axis of the arm is used as a reference.
【0071】ロボットのリンク構造は全て4つのリンク
パラメーターにより表現しうることが判っている(De
navit−Hartenbergの記法)ので、以上
に挙げた「length」命令と「Joint」又は「
Extend」命令によって記述される値(例えば、「
ARM1」では、350(mm)、10(mm)、0(
degrees)、0(degrees))からこれら
4パラメーターの値を算出することができる。It is known that the link structure of a robot can be expressed by four link parameters (De
navit-Hartenberg notation), so the above-mentioned "length" command and "Joint" or "
The value described by the "Extend" instruction (e.g. "
ARM1", 350 (mm), 10 (mm), 0 (
The values of these four parameters can be calculated from 0(degrees) and 0(degrees)).
【0072】よって、このような命令を用いてひとつの
アームの構造を記述することができる。(尚、その詳細
については「コンピュータ制御機械システムシリーズ
ロボット制御基礎論」(コロナ社)の29頁を参照。
)。[0072] Therefore, the structure of one arm can be described using such an instruction. (For details, please refer to the "Computer Controlled Mechanical System Series"
See page 29 of "Basics of Robot Control" (Corona Publishing). ).
【0073】(vi)電気系と機械系の接続変換は、「
Freedom=〜」で指定する。ここで、「Free
dom」は「Construction of〜(パ
ラメーター)」の宣言において指定したパラメーターに
ついての電気的な量と機械量との換算比率を規定するた
めの命令である。(vi) Connection conversion between electrical system and mechanical system is as follows:
Freedom = ~". Here, "Free
dom" is an instruction for defining the conversion ratio between electrical quantity and mechanical quantity for the parameter specified in the declaration of "Construction of~(parameter)".
【0074】上記のリスト例では、「ARM1」や「A
RM2」に関する「1000 pulse/1deg
ree」の記述や、「ARM3」に関する「1000
pulse/1mm」の記載がみられるが、これらは
アームを1度又は1mm移動するのにどれだけのパルス
数を必要とするかを規定するものである。In the above list example, “ARM1” and “A
“1000 pulse/1deg” related to “RM2”
ree” and “1000” related to “ARM3”.
"pulse/1 mm", which defines how many pulses are required to move the arm 1 degree or 1 mm.
【0075】(vii)「Limit of Fr
eedom」文は、自由度についての可動範囲を制限す
るために記述するものである。(vii) “Limit of Fr.
The "eedom" statement is written to limit the range of movement in terms of degrees of freedom.
【0076】尚、可動範囲は機械量の単位(mm、cm
、m等)でも電気的な量の単位(pulses等)でも
構わない。[0076] The movable range is expressed in units of mechanical quantity (mm, cm
, m, etc.) or a unit of electrical quantity (pulses, etc.).
【0077】次に、ツール搭載軸20に設けられるツー
ル21、21′の構成を記述するモジュール構成プログ
ラム(以下、「ツール構成プログラム」という。)につ
いて説明する。Next, a module configuration program (hereinafter referred to as "tool configuration program") that describes the configuration of the tools 21, 21' provided on the tool mounting shaft 20 will be explained.
【0078】リスト例)
TOOL(1;int p1,p2,p3)=TOO
L1/TOOL2Construction of
TOOL1length=350mm;
Extend with 0 degrees,
0 degrees;End of TOOL1
;
Construction of TOOL2le
ngth=350mm;
Extend with 0 degrees,
0 degrees;End of TOOL1
;
Select of
p1=1:TOOL1;
p1=2:TOOL2;
End of Select;
Control of TOOL1PRIM t
ool1(p2,p3)End of TOOL1
Control of TOOL2PRIM t
ool2(p2)
End of TOOL2
End.List example) TOOL (1; int p1, p2, p3) = TOO
L1/TOOL2 Construction of
TOOL1length=350mm; Extend with 0 degrees,
0 degrees; End of TOOL1
; Construction of TOOL2le
ngth=350mm; Extend with 0 degrees,
0 degrees; End of TOOL1
; Select of p1=1:TOOL1; p1=2:TOOL2; End of Select; Control of TOOL1PRIM t
ool1 (p2, p3) End of TOOL1 Control of TOOL2PRIM t
ool2 (p2) End of TOOL2 End.
【0079】上記のリストにおいて、「TOOL(パラ
メーター)=」により、ロボットのツール搭載軸20に
取り付けられる2つのツール21、21′が宣言される
。In the above list, two tools 21 and 21' attached to the tool mounting shaft 20 of the robot are declared by "TOOL (parameter)=".
【0080】例えば、「TOOL1」がツール21を示
し、「TOOL2」がツール21′を示しており、「/
」は両者が対等の関係にあることを意味する。For example, "TOOL1" indicates tool 21, "TOOL2" indicates tool 21', and "/
' means that the two are in an equal relationship.
【0081】「TOOL( )=」の( )内に示
す整数型のパラメーターp1、p2、p3のうちパラメ
ーターp1は、ツールを選択するためのもので、残りの
パラメーターは外部関数への引数として渡されるもので
ある。Among the integer-type parameters p1, p2, and p3 shown in parentheses of "TOOL( )=", parameter p1 is for selecting the tool, and the remaining parameters are passed as arguments to the external function. It is something that can be done.
【0082】ツール21、21′の構成は、「Cons
truction ofxxxx」から「End
of xxxx」迄の間に記述されている内容によっ
て確定され、「length」命令や「Extend
with」命令については前述した通りである。The configuration of the tools 21 and 21' is "Cons
truction ofxxxx” to “End”
of xxxx”, and is determined by the contents written up to
The "with" command is as described above.
【0083】「Select of〜」から「End
of Select」にかけての記述内容はパラ
メーターp1の値に応じてツールの選択処理がなされる
ことを意味している。[0083] From “Select of ~” to “End”
The content written under "of Select" means that the tool selection process is performed according to the value of the parameter p1.
【0084】また、ツールに関する実際の制御は、数値
制御装置の種類やこれに使用されるCPU5の如何に依
存するため、外部関数に委ねられる。「Control
of〜」文と「End of〜」文との間にある
「PRIM」命令は外部関数「tool1」や「too
l2」を特定するものである。Furthermore, actual control of the tool is entrusted to an external function because it depends on the type of numerical control device and the CPU 5 used therein. "Control
The "PRIM" instruction between the "of~" and "End of~" statements is used by the external function "tool1" or "too
12''.
【0085】次に、上記のようなモジュール構成プログ
ラムやツール構成プログラムのコンパイルについて説明
する。Next, the compilation of the module configuration program and tool configuration program as described above will be explained.
【0086】モジュール構成プログラム(ツール構成プ
ログラムを含む)はモジュール構成プログラミングユニ
ット23(図1参照)によって作成された後に機械語に
変換され、最終的に図3や図4に示したような一連のサ
ブルーチンパッケージからなる座標変換ユニット9や工
具用サブルーチンユニット10に変換される。After the module configuration program (including the tool configuration program) is created by the module configuration programming unit 23 (see FIG. 1), it is converted into machine language, and finally it is converted into a series of machine languages as shown in FIGS. 3 and 4. The coordinate conversion unit 9 and the tool subroutine unit 10 are converted into a subroutine package.
【0087】即ち、モジュール構成プログラミングユニ
ット23内の編集部24で作成されたモジュール構成プ
ログラム及びツール構成プログラムは、コンパイル部2
5に送られて機械語に変換された後変換プロセスの生成
部26に送出される。That is, the module configuration program and tool configuration program created by the editing section 24 in the module configuration programming unit 23 are processed by the compiling section 2.
5, the code is converted into machine language, and then sent to the generation unit 26 of the conversion process.
【0088】この生成部26で作られる変換プロセスの
集合体として座標変換ユニット9や工具用サブルーチン
ユニット10が作成され、これらがLAN・I/F(イ
ンターフェース)27を介してLAN基幹線7に乗って
数値制御装置2に送られるようになっている。A coordinate transformation unit 9 and a tool subroutine unit 10 are created as a collection of transformation processes created by the generation unit 26, and these are connected to the LAN trunk line 7 via a LAN I/F (interface) 27. and is sent to the numerical control device 2.
【0089】コンパイル部25における文法解析手続迄
の取扱いは、公知のコンパイラ技術によって容易に作成
することができる。但し、使用するコンパイラの呼び出
し手順に誤りがないようにするために、モジュール構成
プログラムを一旦制御プログラムの作成言語に変換した
後にこれをコンパイルするという手法が望ましい。The handling up to the grammar analysis procedure in the compiling unit 25 can be easily created using known compiler technology. However, in order to ensure that there are no errors in the calling procedure of the compiler used, it is desirable to first convert the module configuration program into the control program creation language and then compile it.
【0090】図2はコンパイル部25の構成を示すもの
である。FIG. 2 shows the configuration of the compiling section 25.
【0091】モジュール構成プログラムは前記したよう
なモジュール構成の記述言語を用いて計算機上のエディ
タによって作成され、一般にASCIIコードにより表
記されている。The module configuration program is created by an editor on a computer using the above-mentioned module configuration description language, and is generally written in ASCII code.
【0092】28は字句解析部であり、モジュール構成
プログラムを読み込み、字句の分離を行なうために設け
られている。ここで「字句の分離」とは、「lengt
h」、「Joint」等の少なくとも1文字以上の文字
の集合であって、その集合により唯一の意味を有する単
語等をプログラムから抽出することをいう。具体的には
、公知である、仮想スタックマシンにより、文字を追跡
する方法等を挙げることができる。Reference numeral 28 denotes a lexical analysis section, which is provided to read the module configuration program and perform lexical separation. Here, “lexical separation” means “length
It is a set of at least one character such as "h", "Joint", etc., and a word that has a unique meaning from the set is extracted from a program. Specifically, a well-known method of tracing characters using a virtual stack machine can be cited.
【0093】29は文法解析部であり、字句解析部28
より得られた字句の組み合せを所定の文法に従って解釈
し、必要な数値情報等を取り出す処理を行なうために設
けられれいる。本処理も、具体的には、仮想スタックマ
シンにより字句を追跡するという公知の方法を用いるこ
とができる。29 is a grammar analysis section, and a lexical analysis section 28
This is provided to interpret the resulting combination of words and phrases according to a predetermined grammar and extract necessary numerical information and the like. Specifically, this process can also use a known method of tracking tokens using a virtual stack machine.
【0094】30は4パラメーター抽出部であり、文法
解析において解析された「Joint to」、「E
xtend to」、「length」文により記述
されたパラメーターを取り出し、「Denavit−H
artenberg」記法に基づく4つのリンクパラメ
ーターを算出するものである。30 is a 4-parameter extractor, which extracts "Joint to" and "E
xtend to" and "length" statements, and select "Denavit-H
This method calculates four link parameters based on the "Artenberg" notation.
【0095】勿論、記述するパラメーターをこれら4パ
ラメーターと同一のものとして採用するような文法を用
いても構わない。文法の決定は他の文と全く独立な幾何
学的要素であるので、自由に決定することができるから
である。Of course, a grammar may be used in which the parameters to be described are the same as these four parameters. This is because determining grammar is a geometrical element that is completely independent of other sentences, so it can be determined freely.
【0096】31は機械/電気系変換パラメーター抽出
部であり、「Freedom」文により規定される機械
系の単位と電気系の単位との変換係数を設定するための
ものである。Reference numeral 31 denotes a mechanical/electrical system conversion parameter extraction unit, which is used to set a conversion coefficient between the mechanical system unit and the electrical system unit defined by the "Freedom" statement.
【0097】例えば、長さの単位「cm」とパルス数の
単位「Pulse」との対応関係、つまり、換算率が規
定される。但し、単位系に関しては、「m」や「cm」
等が混在しないように「mm」で統一すべきである。一
般にロボットの動作範囲の決定においては「mm」が単
位系として用いられることが多く、その方が取扱い易い
からである。For example, the correspondence relationship between the length unit "cm" and the pulse number unit "Pulse", that is, the conversion rate is defined. However, regarding the unit system, "m" or "cm"
etc. should be unified with "mm" to avoid confusion. Generally, "mm" is often used as a unit system in determining the operating range of a robot, because it is easier to handle.
【0098】32は同次変換行列作成部であり、4パラ
メーター抽出部30により抽出されたパラメーターから
同次変換行列を作成する。同次変換行列とは回転や並進
操作を4行4列でひとまとめに表した座標変換行列であ
り、回転行列や並進ベクトルを含んでいる。A homogeneous transformation matrix creation section 32 creates a homogeneous transformation matrix from the parameters extracted by the four-parameter extraction section 30. A homogeneous transformation matrix is a coordinate transformation matrix that collectively represents rotation and translation operations in 4 rows and 4 columns, and includes a rotation matrix and a translation vector.
【0099】一般に、n自由度(nは自然数)をもつマ
ニュピュレーターの手先位置を示す位置ベクトルは各関
節の変位を示す関節変数ベクトル(関節変数の組)の関
数として表すことができ、関節変数ベクトルが与えられ
たときに手先位置を求める問題は順運動学問題と称され
る。In general, a position vector indicating the hand position of a manipulator with n degrees of freedom (n is a natural number) can be expressed as a function of a joint variable vector (set of joint variables) indicating the displacement of each joint. The problem of finding the hand position when a variable vector is given is called a forward kinematics problem.
【0100】各関節に設定された座標系のうち隣接する
座標系については4つのリンクパラメーターを用いて表
される同次変換行列によってお互いの関係を規定するこ
とができる。Among the coordinate systems set for each joint, the relationship between adjacent coordinate systems can be defined by a homogeneous transformation matrix expressed using four link parameters.
【0101】具体的には、i番目の関節軸に設定された
座標系を(iー1)番目の関節軸に設定された座標系か
ら見たときの同次変換行列は、4パラメーターを(θi
,αi−1,ai−1,di)とし、Si=sinθi
、Ci=cosθi、S(αi−1)=sinαi−1
、C(αi−1)=cosαi−1とおくと、[数1]
式に示すような形になる。Specifically, the homogeneous transformation matrix when the coordinate system set for the i-th joint axis is viewed from the coordinate system set for the (i-1)th joint axis has four parameters as ( θi
, αi-1, ai-1, di), and Si=sinθi
, Ci=cosθi, S(αi-1)=sinαi-1
, C(αi-1)=cosαi-1, [Math. 1]
It will take the form shown in the formula.
【0102】[0102]
【数1】[Math 1]
【0103】このような同次変換行列は関節毎に計算さ
れる。(尚、詳細については「コンピュータ制御機械シ
ステムシリーズ ロボット制御基礎論」(コロナ社)
の34頁を参照。)。[0103] Such a homogeneous transformation matrix is calculated for each joint. (For details, please refer to "Computer Controlled Mechanical System Series Robot Control Fundamentals" (Corona Publishing)
See page 34. ).
【0104】33は情報合成部であり、前記機械/電気
系変換パラメーター抽出部31からの換算率に関する情
報と、同次変換行列作成部32より得られた情報(関節
毎の同次変換行列)とをアーム毎にまとめてアーム情報
記録部34に記録するために設けられている。[0104] Reference numeral 33 denotes an information synthesis section, which combines information regarding the conversion rate from the mechanical/electrical system conversion parameter extraction section 31 and information obtained from the homogeneous transformation matrix creation section 32 (homogeneous transformation matrix for each joint). It is provided to record the information for each arm in the arm information recording section 34.
【0105】アーム情報記録部34では、モジュール構
成プログラムのうちの各アームに関する情報をひとまと
めにして、アーム毎に記憶しこれを管理する。[0105] The arm information recording section 34 collectively stores and manages information regarding each arm in the module configuration program for each arm.
【0106】各関節についての4パラメーターの値が全
て与えられれば、各関節の同次変換行列を全て掛け合わ
せることで、手先位置や姿勢を基軸部に固定した基準座
標系で表現することができる。つまり、[数1]式に示
す同次変換行列は隣接する関節軸に設定された座標系間
の相対的な関係を表すものであり、ロボットの基軸部に
固定した基準座標系における手先位置のベクトルを求め
るには、各関節についいての、同次変換行列の積を計算
すれば良く、これによって順運動学問題が解けたことに
なる。[0106] If the values of all four parameters for each joint are given, by multiplying all the homogeneous transformation matrices of each joint, the hand position and posture can be expressed in a reference coordinate system fixed to the base axis. . In other words, the homogeneous transformation matrix shown in Equation [Equation 1] expresses the relative relationship between the coordinate systems set for adjacent joint axes, and it expresses the hand position in the reference coordinate system fixed to the base axis of the robot. To find the vector, it is sufficient to calculate the product of homogeneous transformation matrices for each joint, and this solves the forward kinematics problem.
【0107】アーム情報記録部34に記録された同次変
換行列について掛け算を行ない、変換行列の合成行列を
計算する処理は、総合合成部35と順運動学系同次変換
行列合成部36においてなされる。The processing of multiplying the homogeneous transformation matrices recorded in the arm information recording section 34 and calculating a composite matrix of the transformation matrices is performed in the comprehensive synthesis section 35 and the forward kinematics system homogeneous transformation matrix synthesis section 36. Ru.
【0108】37はインターフェース部作成部であり、
上記した「ROBOT」文において指定される関節軸の
自由度に基づいてC言語上の関数エントリーを作成する
ために設けけられる。37 is an interface section creation section;
It is provided to create a function entry in the C language based on the degree of freedom of the joint axis specified in the above-mentioned "ROBOT" statement.
【0109】即ち、順運動学系についての変換(つまり
、合成後の同次変換行列を用いた変換)に際しては、パ
ルス数をエントリーとしその出力をデカルト座標系で表
示する関数のタイトル部分を作成する。In other words, when converting a forward kinematics system (that is, converting using a homogeneous transformation matrix after synthesis), create a title part of a function that takes the number of pulses as an entry and displays its output in the Cartesian coordinate system. do.
【0110】例えば、
ROBOT RobotName(p1,p2,p3
)=ARM1+ARM2+ARM3
というモジュール構成プログラムのステートメントを文
法解析部29が解釈したときに、インターフェース部作
成部37はその解釈結果を受けて、
DEC AxisToDec(p1,p2,p3)l
ong int p1,p2,p3;という文字列
を生成する。ここで、型「DEC」とはデカルト座標系
を意味する構造体である。For example, ROBOT RobotName(p1, p2, p3
)=ARM1+ARM2+ARM3 When the grammar analysis section 29 interprets the statement of the module configuration program, the interface section creation section 37 receives the interpretation result and executes DEC AxisToDec(p1, p2, p3)l.
Generates a string of on int p1, p2, p3; Here, the type "DEC" is a structure meaning a Cartesian coordinate system.
【0111】総合合成部35は、アーム情報記録部34
の情報に基づいて同次変換行列の合成行列と、機械/電
気系変換の換算式とを生成して、これらと上記インター
フェース部作成部37によって作成されたインターフェ
ース部とを合成し、ひとつの変換関数を作成する。[0111] The comprehensive synthesis section 35 includes the arm information recording section 34.
A combination matrix of homogeneous transformation matrices and a conversion formula for mechanical/electrical system conversion are generated based on the information, and these and the interface section created by the interface section creation section 37 are combined to form a single transformation. Create a function.
【0112】そして、C言語コンパイラ38が、総合合
成部35で作成された変換関数のコンパイルを行なう。
尚、その際、変換関数を数値制御装置上の特定メモリ位
置にて動作しうるように、一般的には図示しないリンク
ロケータによる処理を行なわなければならないことがあ
る。Then, the C language compiler 38 compiles the conversion function created by the comprehensive synthesis section 35. In this case, it may be necessary to perform processing using a link locator (not shown) so that the conversion function can be operated at a specific memory location on the numerical control device.
【0113】以上の処理により、順運動学系に関して軸
座標系からデカルト座標系への変換時の計算用サブルー
チンが作成される。Through the above processing, a calculation subroutine for converting the axial coordinate system to the Cartesian coordinate system regarding the forward kinematics system is created.
【0114】次に、デカルト座標系から軸座標系への変
換時の計算用サブルーチンの作成について説明する。Next, the creation of a subroutine for calculation when converting from a Cartesian coordinate system to an axial coordinate system will be explained.
【0115】この変換は、手先位置を与えて関節変数を
求める処理に相当し、これを求める問題は逆運動学問題
と称され、その解法には代数的又は幾何学的に解く方法
と数値的に解く方法が知られているが、ここでは逆行列
計算を用いた代数的な解法を用いる。[0115] This conversion corresponds to the process of determining joint variables by giving the hand position, and the problem of determining this is called an inverse kinematics problem, and its solution methods include an algebraic or geometric solution method and a numerical method. There are known methods to solve this problem, but here we will use an algebraic solution method using inverse matrix calculations.
【0116】前述したように順運動学系同次変換行列合
成部36では、アーム情報記録部34内にあるアーム毎
の同次変換行列から合成行列が求められる。As described above, in the forward kinematics homogeneous transformation matrix synthesis section 36, a synthesis matrix is obtained from the homogeneous transformation matrix for each arm stored in the arm information recording section 34.
【0117】ランク(rank)算定部39は、合成行
列の逆行列が存在するかどうかを調べる。そして、逆行
列の存在を確認すると、逆運動学系ルーチンの生成部4
0にその旨を指示し、逆行列が存在しなければ、所謂繰
り返し計算アルゴリズムに従ってルーチンを生成するよ
うに指示を出す。[0117] The rank calculation unit 39 checks whether an inverse matrix of the composite matrix exists. When the existence of the inverse matrix is confirmed, the generator 4 of the inverse kinematics routine
0 to that effect, and if the inverse matrix does not exist, an instruction is issued to generate a routine according to a so-called iterative calculation algorithm.
【0118】逆運動学系ルーチンの生成部40は、ラン
ク算定部39からの指示に従って同次変換行列に基づい
て逆変換関数を作成し、これをC言語コンパイラ38´
に渡して実行コードに変換する。The inverse kinematics routine generation unit 40 creates an inverse transformation function based on the homogeneous transformation matrix according to instructions from the rank calculation unit 39, and generates the inverse transformation function using the C language compiler 38'.
to convert it into executable code.
【0119】こうしてデカルト座標系から軸座標系への
変換時の計算用サブルーチンが得られる。In this way, a subroutine for calculation when converting from a Cartesian coordinate system to an axial coordinate system is obtained.
【0120】尚、逆運動学系ルーチンの作成にあたって
は、既知の逆行列計算プログラムを使用すれば良い。[0120] In creating the inverse kinematics routine, a known inverse matrix calculation program may be used.
【0121】また、本実施例では、逆運動学系のルーチ
ンが作成できることを前提としているが、一般には逆運
動学問題については閉じた形の解が得られないので変換
用サブルーチンが常に作成できるとはかぎらない。この
場合には特定の関節部の座標をも含めたデカルト座標系
を採用して、次元数を(3*n)次元(nは自然数)に
拡張することで、各軸の値を決定する方法を用いること
も有効な手段となる。[0121]Also, in this example, it is assumed that an inverse kinematics routine can be created, but in general, closed-form solutions cannot be obtained for inverse kinematics problems, so a conversion subroutine can always be created. Not necessarily. In this case, the value of each axis is determined by adopting a Cartesian coordinate system that includes the coordinates of specific joints and expanding the number of dimensions to (3*n) dimensions (n is a natural number). It is also an effective method to use.
【0122】また、モジュール構成プログラムのプログ
ラミング上の自由度を、予め用意した逆運動学系ルーチ
ンが利用できる範囲で制限することによっても逆行列を
得ることができる。The inverse matrix can also be obtained by limiting the degree of freedom in programming the module configuration program to the extent that a previously prepared inverse kinematics routine can be used.
【0123】以上の処理手順について簡単にまとめると
以下のようになる。The above processing procedure can be briefly summarized as follows.
【0124】先ず、順運動学系に関する処理の概要を下
記に示す。
(1)モジュール構成プログラムを作成する。
(2)モジュール構成プログラムを解釈する。
(3)4パラメーターの抽出や機械/電気系についての
換算パラメーターの抽出を行なう。
(4)関節毎に同次変換行列を計算する。
(5)同次変換行列の合成行列を計算する。
(6)計算用サブルーチンを作成する。First, an outline of the processing related to the forward kinematics system is shown below. (1) Create a module configuration program. (2) Interpret the module configuration program. (3) Extract four parameters and conversion parameters for mechanical/electrical systems. (4) Calculate a homogeneous transformation matrix for each joint. (5) Calculate a composite matrix of homogeneous transformation matrices. (6) Create a calculation subroutine.
【0125】また、逆運動学系に関する処理の概要を下
記に示す。
(1)同次変換行列について逆行列の存在を調べる。
(2)逆行列計算を用いて逆運動学問題を解く。
(3)計算用サブルーチンを作成する。[0125] Also, an outline of the processing related to the inverse kinematics system is shown below. (1) Check the existence of an inverse matrix for the homogeneous transformation matrix. (2) Solve the inverse kinematics problem using inverse matrix calculation. (3) Create a calculation subroutine.
【0126】以上の処理により、サブルーチンの集合体
である座標変換ユニット9が得られることになる。[0126] Through the above processing, the coordinate transformation unit 9, which is a collection of subroutines, is obtained.
【0127】尚、工具用サブルーチンユニット10も座
標変換ユニット9の作成手順と同様な手順を踏むことに
よって作成することができる。Note that the tool subroutine unit 10 can also be created by following the same steps as the steps for creating the coordinate transformation unit 9.
【0128】作成されたこれらのユニットは、ROM化
した後に数値制御装置2に組み込むことも当然可能であ
るが、これらは読み書き可能なRAMに格納することで
処理の柔軟性を高めるようにすることが望ましい。[0128] It is of course possible to incorporate these created units into the numerical control device 2 after converting them into ROM, but it is preferable to store them in readable/writable RAM to increase processing flexibility. is desirable.
【0129】また、モジュール構成プログラミングユニ
ット23上で作成した変換ユニットはLAN・I/F2
7によりLAN基幹線7を介して数値制御装置2内の座
標変換ユニット9として転送される。そのエントリーポ
イントは予め決められているので、転送の終了とともに
数値制御装置2内では直ちにロボット1の制御に対応す
ることができる。[0129] Furthermore, the conversion unit created on the module configuration programming unit 23 is
7, the coordinate conversion unit 9 in the numerical control device 2 is transferred via the LAN trunk line 7. Since the entry point is determined in advance, the robot 1 can be controlled within the numerical control device 2 immediately upon completion of the transfer.
【0130】[0130]
【発明の効果】以上に記載したところから明らかなよう
に、本発明によれば、FMS中で頻繁に行われるロボッ
トのリンク構成の変更があっても、リンク構造を記述し
たモジュール構成プログラムの変更によってロボットプ
ログラムには何等手を加えることなく対処することがで
き、プログラムの管理や保守に要する手間を軽減するこ
とができる。Effects of the Invention As is clear from the above description, according to the present invention, even if the link configuration of a robot is frequently changed in an FMS, the module configuration program that describes the link structure can be changed. This allows the robot program to be handled without any modification, and the effort required for program management and maintenance can be reduced.
【0131】また、ロボットプログラムの作成にあたっ
てツールの形状を殆ど意識することなく作成することが
でき、ツールの設計変更があった場合においてその動作
についての記述の変更を要しないので、ロボットプログ
ラムとは全く独立したモジュール構成プログラムを作成
することによってツールの変更に対処することができ、
ツールの設計部署とは別の部署でロボットプログラムの
プログラミングを行なうことができるようになる。[0131] Furthermore, when creating a robot program, it is possible to create it without being aware of the shape of the tool, and even if the design of the tool is changed, there is no need to change the description of its operation. Tool changes can be accommodated by creating completely independent modular configuration programs,
Robot programs can now be programmed in a separate department from the tool design department.
【0132】そして、ロボットの数値制御装置において
その制御手順を記述するプログラム記憶領域とは独立に
変換用プログラム(座標変換ユニットや工具用サブルー
チンユニット)のための記憶領域を設け、かつ、変換用
プログラムを外部から随時に書き込むことができるよう
にすることで、ネットワークの活用を図ることができ(
例えば、プログラミング時にCADデータを利用するこ
とができる等)、プログラムを能率良く作成することが
できる。[0132] In the numerical control device of the robot, a storage area for conversion programs (coordinate conversion unit and tool subroutine unit) is provided independently of the program storage area for describing the control procedure, and a storage area for conversion programs (coordinate conversion unit and tool subroutine unit) is provided. By making it possible to write from the outside at any time, you can make better use of the network (
For example, CAD data can be used during programming, etc.), and programs can be created efficiently.
【図1】ロボットシステムの構築例を示すブロック図で
ある。FIG. 1 is a block diagram showing an example of the construction of a robot system.
【図2】コンパイラ部の構成を示すブロック図である。FIG. 2 is a block diagram showing the configuration of a compiler section.
【図3】座標変換ユニットの構成を概念的に示す図であ
る。FIG. 3 is a diagram conceptually showing the configuration of a coordinate transformation unit.
【図4】工具用サブルーチンユニットの構成を概念的に
示す図である。FIG. 4 is a diagram conceptually showing the configuration of a tool subroutine unit.
【図5】ロボットのリンク構造の一例を概略的に示す側
面図である。FIG. 5 is a side view schematically showing an example of a link structure of a robot.
1 多軸ロボット
2 数値制御部
6 制御プログラム記憶部
9、10 変換用プログラムの記憶部23 プログ
ラミング部1 Multi-axis robot 2 Numerical control section 6 Control program storage section 9, 10 Conversion program storage section 23 Programming section
Claims (2)
きる多軸ロボットの制御装置であって、(1)多軸ロボ
ットのリンク構成を記述するプログラムを作成するとと
もに、該プログラム中においてロボットの関節毎に設定
された座標系間の相対的な位置関係を示すパラメーター
に基づいて、ロボットの各関節の変位や姿勢を示す情報
と、ロボットの手先位置をロボットの特定の関節軸に固
定した基準座標系で表現した情報との間で相互に座標変
換を行なうための変換用プログラムを生成し、これをロ
ボットの数値制御部で動作しうる命令語に変換するため
のプログラミング部を設けたこと、(2)プログラミン
グ部により生成された変換用プログラムを格納し、変換
用プログラムを用いてロボットの各関節の状態を示す情
報から得られる手先位置の情報又は手先位置から得られ
る各関節の状態を示す情報に基づいてロボットの位置決
め制御を行なう数値制御部を設けたこと、を特徴とする
多軸ロボットの制御装置。1. A control device for a multi-axis robot that can freely change the link structure, comprising: (1) creating a program that describes the link structure of the multi-axis robot; Information indicating the displacement and posture of each joint of the robot, based on parameters indicating the relative positional relationship between the coordinate systems set in each case, and reference coordinates that fix the position of the robot's hand to a specific joint axis of the robot. A programming unit is provided to generate a conversion program for mutually performing coordinate conversion with the information expressed in the system, and convert it into command words that can be operated by the numerical control unit of the robot. 2) Store the conversion program generated by the programming unit, and use the conversion program to obtain hand position information from information indicating the state of each joint of the robot or information indicating the state of each joint obtained from the hand position. 1. A control device for a multi-axis robot, comprising a numerical control section that controls positioning of the robot based on the following.
装置において、数値制御部にはその制御手順を記述する
プログラムを格納する制御プログラム記憶部とは独立に
変換用プログラムのための記憶部を所定の位置に設け、
かつ、変換用プログラムを外部から随時に書き込むこと
ができるようにしたことを特徴とする多軸ロボットの制
御装置。2. The control device for a multi-axis robot according to claim 1, wherein the numerical control section includes a storage section for a conversion program independently of a control program storage section that stores a program that describes the control procedure. in a predetermined position,
A control device for a multi-axis robot is further characterized in that a conversion program can be written from outside at any time.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14812191A JPH04347703A (en) | 1991-05-24 | 1991-05-24 | Controller for multiaxial robot |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14812191A JPH04347703A (en) | 1991-05-24 | 1991-05-24 | Controller for multiaxial robot |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04347703A true JPH04347703A (en) | 1992-12-02 |
Family
ID=15445730
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14812191A Pending JPH04347703A (en) | 1991-05-24 | 1991-05-24 | Controller for multiaxial robot |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04347703A (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003533810A (en) * | 2000-05-16 | 2003-11-11 | ブリガム・ヤング・ユニバーシティ | Machine tool control method and system using direct transfer of machining data |
| JP2008207331A (en) * | 2008-03-24 | 2008-09-11 | Sony Corp | Robot control apparatus, robot control method, and robot control program |
| JP2018153883A (en) * | 2017-03-16 | 2018-10-04 | 株式会社安川電機 | Control system, controller, and control method |
-
1991
- 1991-05-24 JP JP14812191A patent/JPH04347703A/en active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003533810A (en) * | 2000-05-16 | 2003-11-11 | ブリガム・ヤング・ユニバーシティ | Machine tool control method and system using direct transfer of machining data |
| JP2008207331A (en) * | 2008-03-24 | 2008-09-11 | Sony Corp | Robot control apparatus, robot control method, and robot control program |
| JP2018153883A (en) * | 2017-03-16 | 2018-10-04 | 株式会社安川電機 | Control system, controller, and control method |
| CN108621152A (en) * | 2017-03-16 | 2018-10-09 | 株式会社安川电机 | Control system, controller and control method |
| US11198219B2 (en) | 2017-03-16 | 2021-12-14 | Kabushiki Kaisha Yaskawa Denki | Controller, control system, and control method |
| CN108621152B (en) * | 2017-03-16 | 2022-02-08 | 株式会社安川电机 | Control system, controller and control method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9063535B2 (en) | Numerical control program execution by robot | |
| US5511147A (en) | Graphical interface for robot | |
| US5303384A (en) | High level language-based robotic control system | |
| Hayward et al. | Robot manipulator control under unix RCCL: a robot control" C" library | |
| Zivanovic et al. | An approach for applying STEP-NC in robot machining | |
| US4843566A (en) | Robot motion control system | |
| CN101092031A (en) | Off line programming tool for industrial robot | |
| Pan et al. | RobMach: G-Code-based off-line programming for robotic machining trajectory generation | |
| CN101861233B (en) | Industrial robot and method for controlling the movement of an industrial robot | |
| CN111708525A (en) | An Interpreter for Graphical Programming System of Industrial Robot Based on XML | |
| JP3168682B2 (en) | Numerical control unit | |
| Nevliudov et al. | Multithreaded software control of industrial manipulator movement | |
| JPH04347703A (en) | Controller for multiaxial robot | |
| Hwang et al. | Interactive task planning through natural language | |
| Lee et al. | Implementation of RCCL, a robot control C library on a microVAX II | |
| Parkin | An interactive robotic simulation package | |
| CN119136953A (en) | Robot control device, numerical control system and numerical control method | |
| US20030093165A1 (en) | Programming method for creating a control program of an industrial machine | |
| JPH0991022A (en) | Robot controller | |
| JP2708445B2 (en) | Processing simulation device | |
| Ranky | Programming industrial robots in FMS (A survey with particular reference to off-line, high-level robot program generation using VAL, VAL-II, AML And MARTI) | |
| Kamisetty et al. | Development of a CAD/CAM robotic translator for programming the IBM 7535 SCARA robot off-line | |
| Hörmann | Introduction to programming methods | |
| Hermann | Introduction to programming | |
| Capizzi et al. | Robot programming languages standardization in manufacturing environment |