JPH04347703A - 多軸ロボットの制御装置 - Google Patents

多軸ロボットの制御装置

Info

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
conversion
unit
joint
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
JP14812191A
Other languages
English (en)
Inventor
Tadanori Harada
忠則 原田
Hiroshi Jinno
比呂志 陣野
Norio Sato
則夫 佐藤
Yoshimasa Mimura
三村 芳正
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP14812191A priority Critical patent/JPH04347703A/ja
Publication of JPH04347703A publication Critical patent/JPH04347703A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の技術分野】本発明は、ロボットのリンク構造
をプログラミング言語によって記述してこれを管理し、
言語化されたロボットの構造を解析することによって座
標変換モジュールを作成してロボットの数値制御装置内
の記憶部に転送することで、リンク構造を自由に変化さ
せることができるようにして、ロボットの制御に柔軟に
対応することができるようにした新規な多軸ロボットの
数値制御装置に関するものである。
【0002】
【従来の技術】近年の産業用ロボット分野における技術
革新により、産業用ロボットは小型化、汎用化が進み、
所謂FMS(多品種少量生産システム)において加工要
素の一単位として用いられることが多くなってきた。
【0003】FMSにおいては同一の加工ステーション
が生産品種によって全く異なった作業をするものである
ことから、ロボットアームの先端部に付設する加工工具
も生産品種毎に多種多様であり、ロボットの加工手順を
記述したプログラム(以下、「ロボットプログラム」と
言う。)も生産品種毎に相違する。従って、生産品種を
替える場合にはその度にロボットプログラムを取り替え
ることによって対処することができるようになっている
【0004】
【発明が解決しようとする課題】しかし、ロボットプロ
グラムの作成は加工工具の如何に依存することが多く、
この為、生産品種が新たに追加される度にプログラムの
大幅な変更を余儀なくされ、各ロボットの付近でプログ
ラミングを行わなければならない状況である。
【0005】よって、プログラミングに相当の時間をか
けなければならず、その間ロボットを停止させなければ
ならないという問題がある。
【0006】また、生産品種が増えることによって、ロ
ボットプログラムの数が増加していくが、同一の生産品
種であっても加工工具に変更があった場合には、その作
用点の座標が変化することに伴うロボットプログラムの
変更を要し、これを各ロボットの数値制御装置に登録し
なければならないので、必ずしも効率の良い作業とは言
えない状況である。
【0007】そこで、加工工具用のライブラリーサブル
ーチンを使用してロボットプログラムの統一を図ろうと
する例もあるが、結局は主プログラムを変更せずにリン
カーによってライブラリーサブルーチンを結合する方法
を採っているために、管理すべきロボットプログラムの
数が減るわけではない。
【0008】
【課題を解決するための手段】本発明多軸ロボットの制
御装置は上記した課題を解決するために、先ず、プログ
ラミング部により多軸ロボットのリンク構成を記述する
プログラムを作成し、該プログラム中においてロボット
の関節毎に設定された座標系間の相対的な位置関係を示
すパラメーターに基づいて、ロボットの各関節の変位や
姿勢を示す情報と、ロボットの手先位置をロボットの特
定の関節軸に固定した基準座標系で表現した情報との間
で相互に座標変換を行なうための変換用プログラムを生
成して、これをロボットの数値制御部で動作しうる命令
語に変換する。
【0009】そして、プログラミング部により生成され
た変換用プログラムを数値制御部に引き渡して、この変
換用プログラムに従ってロボットの各関節の状態から得
られる手先位置の情報又はロボットの手先位置から得ら
れる各関節の状態を示す情報に基づいてロボットの位置
決め制御を行なうようにしたものである。
【0010】
【作用】本発明によれば、ロボットのリンク構造をプロ
グラムにより記述して、該プログラムに基づいてロボッ
トの位置及び姿勢に関する座標変換用プログラムを生成
しロボットの数値制御部に転送することで、リンク構造
の改変に対して柔軟に対処することができるので、ロボ
ットのリンク構造を組み替えたり加工工具を変更しても
ロボットの動作を記述するプログラムには何等の変更を
加える必要がなく、ロボット動作に係るプログラムの数
を低減し、その管理や保守に要する労力を軽減すること
ができる。
【0011】
【実施例】以下に、本発明多軸ロボットの制御装置を図
示した実施例に従って説明する。
【0012】図1は、本発明に係るシステムのハードウ
ェアの構成例を示すものである。
【0013】FMS環境下で使用されるロボットは、動
作自由度を増加できるように結合部材を有し少なくとも
ひとつ以上の腕部の組み合わせにより構成され、かつ、
作用端を有する「モジュール型ロボットユニット」を前
提にしている。この「モジュール型ロボットユニット」
は、モジュール組立型ロボットとも呼ばれるべきもので
あり、ロボットのリンク構造をユーザーが自由に改変す
ることができるように構成されたロボットである。但し
、後述する逆運動学問題の解についての保証という点か
ら、現在では予め決められた所定の組み合せに限ってい
る。
【0014】ロボット1は数値制御装置2のサーボユニ
ット3から送られてくる位置等の指示に基づいてロボッ
トプログラムに従った動作を行なうようになっている。 ここで、サーボ制御はロボット1の自由度毎にかけられ
ており、原点復帰動作を行なうために速度指示にも対応
しうるようになっている。
【0015】数値制御装置2内では、LAN・I/F(
インターフェース)4等においてなされるDMA(ダイ
レクトメモリーアクセス)等の場合を除いて、CPU5
が処理を取り仕切っている。CPU5は基本的にはイン
テル社80960やモトローラ社68030等の汎用の
もので足り、制御プログラム記憶部6に予め記録されて
いる制御手順に基づいて動作する。
【0016】LAN・I/F4は、高速データーバスた
るLAN基幹線7と数値制御装置2とを結び、パケット
転送制御などの処理を行なうための部分であり、ロボッ
ト1の動作内容を記述したロボットプログラムや、ロボ
ット1のリンク構造を記述したプログラム(以下、「モ
ジュール構成プログラム」という。)がLAN基幹線7
を介して転送されてくる。
【0017】8はロボットプログラム記憶部であり、ロ
ボットプログラムが2つの態様で記録される。
【0018】第1の記録態様は、CPU5が動作可能な
言語、即ち、機械語での記録態様である。この場合には
ロボット1の動作を開始するときに記録内容がそのまま
CPU5によって解釈された後実行され、サーボユニッ
ト3を通してロボット1の動作が実現される。本態様は
所謂コンパイラ方式と呼ばれ、ロボットプログラム中に
複雑な数値計算を含むものについてこれを高速に実行す
ることができるという利点があるが、高級言語を機械語
に変換するためのコンパイル処理を要する。
【0019】また、第2の記録態様はCPU5を直接に
は動作させることはできないが、予め決められた文法に
従う記録態様である。この場合、制御プログラム記憶部
6には、文法に従い、記録内容に基づくロボット動作を
実現できるように逐次解釈手順が機械語で記述されてい
て、該手順に基づいてCPU5がロボットプログラム記
憶部8からロボットの動作手順を読み出して実行する。
【0020】本手法は所謂インタープリター方式とも呼
ばれるものであって、逐次解釈をプログラムにより行な
う方式であるため、一般的に実行速度が遅いという欠点
(但し、ロボット自体の動作に関して実行の完了に相当
時間を要するため、ロボットプログラムの実行という観
点からはこの欠点はあまり目立たない。)が指摘される
が、機械語へのコンパイル処理を要しないためその取扱
いが容易であるという利点がある。
【0021】本実施例においてはいずれの記録態様も用
いることができる。
【0022】制御プログラム記憶部6には、通常、電源
供給のない時でもその内容が消えない読み出し専用のメ
モリーデバイス(ROM)が使用される。制御プログラ
ム記憶部6には所謂システムプログラムが記憶されてお
り、CPU5、LAN・I/F4等の初期化を行なう手
順や、インタープリター方式における逐次解釈手順及び
該解釈結果に応じた実行手順等が記憶されている。この
ような手順はCPU5が理解できる機械語で記述されて
おり、直接CPU5により呼び出された後実行されると
いう性格を有する。
【0023】9は座標変換ユニットであり、ロボットプ
ログラムに基づいてロボット軸座標系(各関節間の相対
的な位置関係をパラメーターで指定することで各アーム
の状態を記述する座標系)とロボットの基軸部に固定し
たデカルト座標系との間の座標変換等を処理する機械語
の変換プロセスを記憶するものである。この変換プロセ
スはロボット動作の実現において必要に応じて逐次呼び
出されるという性質がある。
【0024】ここで、座標変換ユニット9は以下の要件
を満たすものとする。
【0025】(1)CPU5から見て必ず予め決められ
た番地からその変換プロセスが記述されていること。
【0026】(2)変換プロセスが複数ある場合には、
各プロセスについてCPU5から見て必ず予め決められ
た番地から記述されていること。
【0027】(3)各変換プロセスはそれぞれ1以上の
引数と1以上の返数との関連において規定通りに変換を
行なうが、その際マルコフ性を有しても構わない。即ち
、同一プロセスにおいて以前に呼び出されたときの情報
に基づいて返数を生成する場合も許容するものとする。
【0028】10は工具用サブルーチンユニットであり
、ロボット1の作用端又は任意の位置に取り付けた加工
工具の制御についての機械語プロセスを記憶するもので
ある。
【0029】この工具用サブルーチンユニット10にお
いても上記(1)乃至(3)の要件を満たすものとする
【0030】尚、座標変換ユニット9と工具用サブルー
チンユニット10との基本的な相違点は、座標変換ユニ
ット9がロボットプログラムの動作手順を実現するため
に使用される必須のユニットであるのに対し、工具用サ
ブルーチンユニット10はロボットプログラムにおいて
工具を使用するという明示的な手順が記載されないとき
には呼び出されることがないという点である。
【0031】座標変換ユニット9や工具用サブルーチン
ユニット10の構成を図3及び図4に概念的に示す。
【0032】座標変換ユニット9はCPU5上の特定の
アドレスから始まる一連のサブルーチンのパッケージの
態様をとる。
【0033】具体的には、図3に示すような形式をとる
。即ち、各座標変換モジュールのエントリーへの分岐番
地に続いて座標変換モジュールのプログラムが配置され
ている。尚、座標変換については軸座標とデカルト座標
間での位置や変位についての変換モジュールが設けられ
ている。
【0034】このような形式とすることにより、座標変
換プロセスが仕様変更により変化してもエントリーポイ
ントは変化せず、制御プログラム記憶部6及びロボット
プログラム記憶部8の記憶内容に直接の変更が生じない
ようにすることができる。
【0035】工具用サブルーチンユニット10はCPU
5上の特定のアドレスから始まるサブルーチンのパッケ
ージの態様をとり、図4に示すような形式をとる。これ
は、座標変換ユニット9の場合と同じ趣旨による。
【0036】尚、座標変換ユニット9では1エントリー
に対してその変換は一意に行なわれていたが、工具用サ
ブルーチンユニット10では唯一のエントリーで全ての
処理がなされる点が相違する。その理由として、一般に
工具はその形態等に応じて、取り扱わなければならない
パラメーターが異なるため、予め用意すべきサブルーチ
ンの数を特定することができないからである。
【0037】座標変換ユニット9や工具用サブルーチン
ユニット10における引数の受け渡しについては、一般
的なプログラムで関数の実現にあたって行なわれている
ように、引数をスタック上に積み上げてサブルーチンに
渡す方法が採られる。引数の数についての制限を事実上
付けないようにすることができるからである。
【0038】次に、上記した構成の数値制御装置2がど
のように稼動するかについて説明する。尚、説明の都合
上、以下に示すロボットプログラムがロボットプログラ
ム記憶部6に記録されているものとする。その形式につ
いてはコンパイラ方式によってもインタープリタ方式に
よっても構わない。
【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,OFF
【0040】ここで、「  P
ointX=(  ,  ,  )」はデカルト座標系
における座標値の定義命令、「PointX=」の「=
」を除く「〜  =  〜」文は数値の代入文、「MO
VE」命令はロボットの作用端を指定位置に移動するた
めの命令、「TOOLS  n,ON(又はOFF)」
はn番チャックのON/OFFを制御する命令をそれぞ
れ示している。
【0041】先ず、行番号10から40にかけての設定
処理では、Point1の座標値(10,20,30)
とPoint2の座標値(50,60,70)が図示し
ないメモリー中の特定位置に記憶される。そして、数値
変数ON、OFFに整数値が1、0がそれぞれ代入され
て図示しないメモリー中の特定位置に記憶される。
【0042】行番号50では「MOVE  Point
1」命令によってロボット1の作用端がPoint1の
位置に移動される。
【0043】ところで、Point1の座標値はデカル
ト座標系での座標値であるため、これをロボット1の軸
座標系での値に変換するために、各軸の位置や姿勢につ
いて計算しなければならない。
【0044】そこで、先ずPoint1の座標値を引数
として座標変換ユニット9上の「デカルト座標→軸座標
」変換プロセスを呼び出し、変換後に得られた軸座標値
に基づいてサーボユニット3に指令を送ってロボット1
を動作させるという処理を行なう。
【0045】行番号60の「TOOLS  1,ON」
命令では、工具番号1に対するON制御をする。例えば
、工具番号1の動作内容がワークの掴み制御に係るもの
である場合には該当番号の工具を作動させてワークを掴
む命令となる。命令の実行にあたっては、工具用サブル
ーチンユニット10へのコールという形で具体化され、
そのときの引数を「1,1」としてサブルーチンを呼び
出している。
【0046】次に行番号70でのPoint2への移動
動作については行番号50での説明と同様に座標変換ユ
ニット9を用いた処理により具現化される。
【0047】そして、行番号80の「TOOLS  1
,OFF」命令によって、工具番号1に対してOFF制
御がなされる。ワークの掴み制御に係る場合には工具が
掴んでいるワークを放す命令となり、行番号60の動作
内容とは相対する処置である。命令の実行にあたって工
具用サブルーチンユニット10へのコールという形で具
体化されることは「TOOLS  1,ON」命令の場
合と同様であるが、その引数については「1,0」とさ
れる。
【0048】上記のようなロボットプログラムはプログ
ラミングユニット11(図1参照)によって作成される
【0049】即ち、編集部12によって作成されるロボ
ットプログラムはコンパイル部13に送られて、ここで
CADデータ14を参照しながら機械語に変換された後
にLAN・I/F(インターフェース)15を介してL
AN基幹線7上に乗せられて数値制御装置2に送られる
ようになっている。
【0050】次に、「モジュール構成プログラミングユ
ニット」についての説明に移る。
【0051】この「モジュール構成プログラミングユニ
ット」とは、モジュール構成プログラムから、ロボット
の各自由度における相対位置情報と該作用端の絶対位置
情報との間で相互に変換するための変換用プログラムを
生成し、これを数値制御装置2で動作しうる命令語に変
換するものである。
【0052】前述したようにモジュール構成プログラム
とはロボット1のリンク構造を記述したプログラムであ
るが、具体的には、アーム毎に下記に示すような情報を
記述したもので、高級言語の形式で記述された情報ファ
イルである。
【0053】 a.アームの長さ b.アームとその位置の基準となるアーム(又は基軸部
)との接続方法 c.接続が回動を伴う軸によってなされている場合にお
いてその回動角と回動パルスとの関係 d.接続が直線移動を伴う軸によってなされている場合
においてその相対移動距離とパルスとの関係
【0054
】例えば、図5に示すような2腕の水平多関節型ロボッ
ト16を想定する。
【0055】即ち、ロボット16は、その基軸部17に
第1アーム18が回動可能な状態で支持されており、こ
の第1アーム18の端部に第2アーム19が回動可能な
状態で取り付けられている。そして、第2アームの先端
部には上下方向にスライド自在な状態でツール搭載軸2
0が取り付けられており、その下端部には、ツール21
、21′を選択的に使用するための回転機構22が設け
られているものとする。
【0056】この場合のモジュール構成プログラムのリ
スト例を下記に示す。
【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.
【0058】ここで、上記のリストに記載されたプログ
ラミング言語について各語の意味について説明する。
【0059】(i)「RobotName」はロボット
16の名称である。そして、「ARM1」、「ARM2
」、「ARM3」はロボット16を構成する腕の名称で
あり、「ARM1」が第1アーム18の名称、「ARM
2」が第2アーム19の名称、「ARM3」がツール搭
載軸20の名称である。
【0060】また、パラメーターp1、p2、p3は、
この順番で軸座標系が構成されることを意味付けための
パラメーターである。尚、ここではp1、p2、・・・
の名称を使っているが、これは単に第1パラメーター、
第2パラメーター・・・というように順序付けの意味を
もった名称なので、axis1、axis2等の別の名
称を用いても勿論構わない。
【0061】ロボット16の構成についての記述は、「
ROBOT」で始まる宣言文と「End.」の宣言終了
文との間でなされる。
【0062】(ii)各アームの記述は、「Const
ruction  of  xxxx」から「End 
 of  xxxx」迄の間に記述されている内容によ
って確定される。
【0063】(iii)「length=・・・」は特
段の明示がない限りそのアームの関節間距離、即ち、回
転関節部と回転関節部との間、又は回転関節部と直動関
節部との間、又は直動関節部と直動関節部との間等の距
離を表わす。
【0064】上記の例では、第1アーム18についての
関節間の長さが350mmであり、基軸部17に対する
第1アーム18の回動軸方向の変位が10mmであるこ
とを「shifted」により記述している。
【0065】尚、一のアームが2以上のアームを有する
場合があるが、この場合にはどのパラメーター間の距離
であるかを明示するため、「length(p1)=〜
〜〜shifted〜〜〜」という形式をとる。
【0066】また、アームの関節部が回動関節でなく直
動関節の構造になっている場合には、「length=
・・・」の定義文にはアームに対する自由度の関係が記
述される。上記の「ARM3」の構成では、「Free
dom(p3)」によってスライド方向への自由度の拡
張が図られており、これはツール搭載軸20にツール2
1、21′を設けられることに伴うストロークの延長を
意味する。
【0067】(iv)「BASE」は予約語であり、基
軸部17を意味する。この基軸部17に設定された絶対
(デカルト)座標系が基準座標系とされている。
【0068】(v)接続関係の記述には、「Joint
  to〜with〜」、又は、「Extend  t
o〜with〜」が用いられる。
【0069】ここで、「Joint  to」文はアー
ムが回動関節によって他のアームに接続されていること
を意味し、「Extended  to」文はアームが
直動運動によって他のアームに接続されていることを意
味する。
【0070】また、「with」以下の部分は、アーム
を取り付ける軸に対してアームがどのような角度をもっ
て接続されるかを確定するために記述される。その表記
は水平面内の極座標で行なうため、2次元で表現される
。尚、ここで基準となる方向ベクトルについては、アー
ムの取り付け軸と同一方向のベクトルを基準として使用
する。
【0071】ロボットのリンク構造は全て4つのリンク
パラメーターにより表現しうることが判っている(De
navit−Hartenbergの記法)ので、以上
に挙げた「length」命令と「Joint」又は「
Extend」命令によって記述される値(例えば、「
ARM1」では、350(mm)、10(mm)、0(
degrees)、0(degrees))からこれら
4パラメーターの値を算出することができる。
【0072】よって、このような命令を用いてひとつの
アームの構造を記述することができる。(尚、その詳細
については「コンピュータ制御機械システムシリーズ 
 ロボット制御基礎論」(コロナ社)の29頁を参照。 )。
【0073】(vi)電気系と機械系の接続変換は、「
Freedom=〜」で指定する。ここで、「Free
dom」は「Construction  of〜(パ
ラメーター)」の宣言において指定したパラメーターに
ついての電気的な量と機械量との換算比率を規定するた
めの命令である。
【0074】上記のリスト例では、「ARM1」や「A
RM2」に関する「1000  pulse/1deg
ree」の記述や、「ARM3」に関する「1000 
 pulse/1mm」の記載がみられるが、これらは
アームを1度又は1mm移動するのにどれだけのパルス
数を必要とするかを規定するものである。
【0075】(vii)「Limit  of  Fr
eedom」文は、自由度についての可動範囲を制限す
るために記述するものである。
【0076】尚、可動範囲は機械量の単位(mm、cm
、m等)でも電気的な量の単位(pulses等)でも
構わない。
【0077】次に、ツール搭載軸20に設けられるツー
ル21、21′の構成を記述するモジュール構成プログ
ラム(以下、「ツール構成プログラム」という。)につ
いて説明する。
【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.
【0079】上記のリストにおいて、「TOOL(パラ
メーター)=」により、ロボットのツール搭載軸20に
取り付けられる2つのツール21、21′が宣言される
【0080】例えば、「TOOL1」がツール21を示
し、「TOOL2」がツール21′を示しており、「/
」は両者が対等の関係にあることを意味する。
【0081】「TOOL(  )=」の(  )内に示
す整数型のパラメーターp1、p2、p3のうちパラメ
ーターp1は、ツールを選択するためのもので、残りの
パラメーターは外部関数への引数として渡されるもので
ある。
【0082】ツール21、21′の構成は、「Cons
truction  ofxxxx」から「End  
of  xxxx」迄の間に記述されている内容によっ
て確定され、「length」命令や「Extend 
 with」命令については前述した通りである。
【0083】「Select  of〜」から「End
  of  Select」にかけての記述内容はパラ
メーターp1の値に応じてツールの選択処理がなされる
ことを意味している。
【0084】また、ツールに関する実際の制御は、数値
制御装置の種類やこれに使用されるCPU5の如何に依
存するため、外部関数に委ねられる。「Control
  of〜」文と「End  of〜」文との間にある
「PRIM」命令は外部関数「tool1」や「too
l2」を特定するものである。
【0085】次に、上記のようなモジュール構成プログ
ラムやツール構成プログラムのコンパイルについて説明
する。
【0086】モジュール構成プログラム(ツール構成プ
ログラムを含む)はモジュール構成プログラミングユニ
ット23(図1参照)によって作成された後に機械語に
変換され、最終的に図3や図4に示したような一連のサ
ブルーチンパッケージからなる座標変換ユニット9や工
具用サブルーチンユニット10に変換される。
【0087】即ち、モジュール構成プログラミングユニ
ット23内の編集部24で作成されたモジュール構成プ
ログラム及びツール構成プログラムは、コンパイル部2
5に送られて機械語に変換された後変換プロセスの生成
部26に送出される。
【0088】この生成部26で作られる変換プロセスの
集合体として座標変換ユニット9や工具用サブルーチン
ユニット10が作成され、これらがLAN・I/F(イ
ンターフェース)27を介してLAN基幹線7に乗って
数値制御装置2に送られるようになっている。
【0089】コンパイル部25における文法解析手続迄
の取扱いは、公知のコンパイラ技術によって容易に作成
することができる。但し、使用するコンパイラの呼び出
し手順に誤りがないようにするために、モジュール構成
プログラムを一旦制御プログラムの作成言語に変換した
後にこれをコンパイルするという手法が望ましい。
【0090】図2はコンパイル部25の構成を示すもの
である。
【0091】モジュール構成プログラムは前記したよう
なモジュール構成の記述言語を用いて計算機上のエディ
タによって作成され、一般にASCIIコードにより表
記されている。
【0092】28は字句解析部であり、モジュール構成
プログラムを読み込み、字句の分離を行なうために設け
られている。ここで「字句の分離」とは、「lengt
h」、「Joint」等の少なくとも1文字以上の文字
の集合であって、その集合により唯一の意味を有する単
語等をプログラムから抽出することをいう。具体的には
、公知である、仮想スタックマシンにより、文字を追跡
する方法等を挙げることができる。
【0093】29は文法解析部であり、字句解析部28
より得られた字句の組み合せを所定の文法に従って解釈
し、必要な数値情報等を取り出す処理を行なうために設
けられれいる。本処理も、具体的には、仮想スタックマ
シンにより字句を追跡するという公知の方法を用いるこ
とができる。
【0094】30は4パラメーター抽出部であり、文法
解析において解析された「Joint  to」、「E
xtend  to」、「length」文により記述
されたパラメーターを取り出し、「Denavit−H
artenberg」記法に基づく4つのリンクパラメ
ーターを算出するものである。
【0095】勿論、記述するパラメーターをこれら4パ
ラメーターと同一のものとして採用するような文法を用
いても構わない。文法の決定は他の文と全く独立な幾何
学的要素であるので、自由に決定することができるから
である。
【0096】31は機械/電気系変換パラメーター抽出
部であり、「Freedom」文により規定される機械
系の単位と電気系の単位との変換係数を設定するための
ものである。
【0097】例えば、長さの単位「cm」とパルス数の
単位「Pulse」との対応関係、つまり、換算率が規
定される。但し、単位系に関しては、「m」や「cm」
等が混在しないように「mm」で統一すべきである。一
般にロボットの動作範囲の決定においては「mm」が単
位系として用いられることが多く、その方が取扱い易い
からである。
【0098】32は同次変換行列作成部であり、4パラ
メーター抽出部30により抽出されたパラメーターから
同次変換行列を作成する。同次変換行列とは回転や並進
操作を4行4列でひとまとめに表した座標変換行列であ
り、回転行列や並進ベクトルを含んでいる。
【0099】一般に、n自由度(nは自然数)をもつマ
ニュピュレーターの手先位置を示す位置ベクトルは各関
節の変位を示す関節変数ベクトル(関節変数の組)の関
数として表すことができ、関節変数ベクトルが与えられ
たときに手先位置を求める問題は順運動学問題と称され
る。
【0100】各関節に設定された座標系のうち隣接する
座標系については4つのリンクパラメーターを用いて表
される同次変換行列によってお互いの関係を規定するこ
とができる。
【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]
式に示すような形になる。
【0102】
【数1】
【0103】このような同次変換行列は関節毎に計算さ
れる。(尚、詳細については「コンピュータ制御機械シ
ステムシリーズ  ロボット制御基礎論」(コロナ社)
の34頁を参照。)。
【0104】33は情報合成部であり、前記機械/電気
系変換パラメーター抽出部31からの換算率に関する情
報と、同次変換行列作成部32より得られた情報(関節
毎の同次変換行列)とをアーム毎にまとめてアーム情報
記録部34に記録するために設けられている。
【0105】アーム情報記録部34では、モジュール構
成プログラムのうちの各アームに関する情報をひとまと
めにして、アーム毎に記憶しこれを管理する。
【0106】各関節についての4パラメーターの値が全
て与えられれば、各関節の同次変換行列を全て掛け合わ
せることで、手先位置や姿勢を基軸部に固定した基準座
標系で表現することができる。つまり、[数1]式に示
す同次変換行列は隣接する関節軸に設定された座標系間
の相対的な関係を表すものであり、ロボットの基軸部に
固定した基準座標系における手先位置のベクトルを求め
るには、各関節についいての、同次変換行列の積を計算
すれば良く、これによって順運動学問題が解けたことに
なる。
【0107】アーム情報記録部34に記録された同次変
換行列について掛け算を行ない、変換行列の合成行列を
計算する処理は、総合合成部35と順運動学系同次変換
行列合成部36においてなされる。
【0108】37はインターフェース部作成部であり、
上記した「ROBOT」文において指定される関節軸の
自由度に基づいてC言語上の関数エントリーを作成する
ために設けけられる。
【0109】即ち、順運動学系についての変換(つまり
、合成後の同次変換行列を用いた変換)に際しては、パ
ルス数をエントリーとしその出力をデカルト座標系で表
示する関数のタイトル部分を作成する。
【0110】例えば、 ROBOT  RobotName(p1,p2,p3
)=ARM1+ARM2+ARM3 というモジュール構成プログラムのステートメントを文
法解析部29が解釈したときに、インターフェース部作
成部37はその解釈結果を受けて、 DEC  AxisToDec(p1,p2,p3)l
ong  int  p1,p2,p3;という文字列
を生成する。ここで、型「DEC」とはデカルト座標系
を意味する構造体である。
【0111】総合合成部35は、アーム情報記録部34
の情報に基づいて同次変換行列の合成行列と、機械/電
気系変換の換算式とを生成して、これらと上記インター
フェース部作成部37によって作成されたインターフェ
ース部とを合成し、ひとつの変換関数を作成する。
【0112】そして、C言語コンパイラ38が、総合合
成部35で作成された変換関数のコンパイルを行なう。 尚、その際、変換関数を数値制御装置上の特定メモリ位
置にて動作しうるように、一般的には図示しないリンク
ロケータによる処理を行なわなければならないことがあ
る。
【0113】以上の処理により、順運動学系に関して軸
座標系からデカルト座標系への変換時の計算用サブルー
チンが作成される。
【0114】次に、デカルト座標系から軸座標系への変
換時の計算用サブルーチンの作成について説明する。
【0115】この変換は、手先位置を与えて関節変数を
求める処理に相当し、これを求める問題は逆運動学問題
と称され、その解法には代数的又は幾何学的に解く方法
と数値的に解く方法が知られているが、ここでは逆行列
計算を用いた代数的な解法を用いる。
【0116】前述したように順運動学系同次変換行列合
成部36では、アーム情報記録部34内にあるアーム毎
の同次変換行列から合成行列が求められる。
【0117】ランク(rank)算定部39は、合成行
列の逆行列が存在するかどうかを調べる。そして、逆行
列の存在を確認すると、逆運動学系ルーチンの生成部4
0にその旨を指示し、逆行列が存在しなければ、所謂繰
り返し計算アルゴリズムに従ってルーチンを生成するよ
うに指示を出す。
【0118】逆運動学系ルーチンの生成部40は、ラン
ク算定部39からの指示に従って同次変換行列に基づい
て逆変換関数を作成し、これをC言語コンパイラ38´
に渡して実行コードに変換する。
【0119】こうしてデカルト座標系から軸座標系への
変換時の計算用サブルーチンが得られる。
【0120】尚、逆運動学系ルーチンの作成にあたって
は、既知の逆行列計算プログラムを使用すれば良い。
【0121】また、本実施例では、逆運動学系のルーチ
ンが作成できることを前提としているが、一般には逆運
動学問題については閉じた形の解が得られないので変換
用サブルーチンが常に作成できるとはかぎらない。この
場合には特定の関節部の座標をも含めたデカルト座標系
を採用して、次元数を(3*n)次元(nは自然数)に
拡張することで、各軸の値を決定する方法を用いること
も有効な手段となる。
【0122】また、モジュール構成プログラムのプログ
ラミング上の自由度を、予め用意した逆運動学系ルーチ
ンが利用できる範囲で制限することによっても逆行列を
得ることができる。
【0123】以上の処理手順について簡単にまとめると
以下のようになる。
【0124】先ず、順運動学系に関する処理の概要を下
記に示す。 (1)モジュール構成プログラムを作成する。 (2)モジュール構成プログラムを解釈する。 (3)4パラメーターの抽出や機械/電気系についての
換算パラメーターの抽出を行なう。 (4)関節毎に同次変換行列を計算する。 (5)同次変換行列の合成行列を計算する。 (6)計算用サブルーチンを作成する。
【0125】また、逆運動学系に関する処理の概要を下
記に示す。 (1)同次変換行列について逆行列の存在を調べる。 (2)逆行列計算を用いて逆運動学問題を解く。 (3)計算用サブルーチンを作成する。
【0126】以上の処理により、サブルーチンの集合体
である座標変換ユニット9が得られることになる。
【0127】尚、工具用サブルーチンユニット10も座
標変換ユニット9の作成手順と同様な手順を踏むことに
よって作成することができる。
【0128】作成されたこれらのユニットは、ROM化
した後に数値制御装置2に組み込むことも当然可能であ
るが、これらは読み書き可能なRAMに格納することで
処理の柔軟性を高めるようにすることが望ましい。
【0129】また、モジュール構成プログラミングユニ
ット23上で作成した変換ユニットはLAN・I/F2
7によりLAN基幹線7を介して数値制御装置2内の座
標変換ユニット9として転送される。そのエントリーポ
イントは予め決められているので、転送の終了とともに
数値制御装置2内では直ちにロボット1の制御に対応す
ることができる。
【0130】
【発明の効果】以上に記載したところから明らかなよう
に、本発明によれば、FMS中で頻繁に行われるロボッ
トのリンク構成の変更があっても、リンク構造を記述し
たモジュール構成プログラムの変更によってロボットプ
ログラムには何等手を加えることなく対処することがで
き、プログラムの管理や保守に要する手間を軽減するこ
とができる。
【0131】また、ロボットプログラムの作成にあたっ
てツールの形状を殆ど意識することなく作成することが
でき、ツールの設計変更があった場合においてその動作
についての記述の変更を要しないので、ロボットプログ
ラムとは全く独立したモジュール構成プログラムを作成
することによってツールの変更に対処することができ、
ツールの設計部署とは別の部署でロボットプログラムの
プログラミングを行なうことができるようになる。
【0132】そして、ロボットの数値制御装置において
その制御手順を記述するプログラム記憶領域とは独立に
変換用プログラム(座標変換ユニットや工具用サブルー
チンユニット)のための記憶領域を設け、かつ、変換用
プログラムを外部から随時に書き込むことができるよう
にすることで、ネットワークの活用を図ることができ(
例えば、プログラミング時にCADデータを利用するこ
とができる等)、プログラムを能率良く作成することが
できる。
【図面の簡単な説明】
【図1】ロボットシステムの構築例を示すブロック図で
ある。
【図2】コンパイラ部の構成を示すブロック図である。
【図3】座標変換ユニットの構成を概念的に示す図であ
る。
【図4】工具用サブルーチンユニットの構成を概念的に
示す図である。
【図5】ロボットのリンク構造の一例を概略的に示す側
面図である。
【符号の説明】
1  多軸ロボット 2  数値制御部 6  制御プログラム記憶部 9、10  変換用プログラムの記憶部23  プログ
ラミング部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  リンク構造を自由に改変することがで
    きる多軸ロボットの制御装置であって、(1)多軸ロボ
    ットのリンク構成を記述するプログラムを作成するとと
    もに、該プログラム中においてロボットの関節毎に設定
    された座標系間の相対的な位置関係を示すパラメーター
    に基づいて、ロボットの各関節の変位や姿勢を示す情報
    と、ロボットの手先位置をロボットの特定の関節軸に固
    定した基準座標系で表現した情報との間で相互に座標変
    換を行なうための変換用プログラムを生成し、これをロ
    ボットの数値制御部で動作しうる命令語に変換するため
    のプログラミング部を設けたこと、(2)プログラミン
    グ部により生成された変換用プログラムを格納し、変換
    用プログラムを用いてロボットの各関節の状態を示す情
    報から得られる手先位置の情報又は手先位置から得られ
    る各関節の状態を示す情報に基づいてロボットの位置決
    め制御を行なう数値制御部を設けたこと、を特徴とする
    多軸ロボットの制御装置。
  2. 【請求項2】  請求項1に記載の多軸ロボットの制御
    装置において、数値制御部にはその制御手順を記述する
    プログラムを格納する制御プログラム記憶部とは独立に
    変換用プログラムのための記憶部を所定の位置に設け、
    かつ、変換用プログラムを外部から随時に書き込むこと
    ができるようにしたことを特徴とする多軸ロボットの制
    御装置。
JP14812191A 1991-05-24 1991-05-24 多軸ロボットの制御装置 Pending JPH04347703A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14812191A JPH04347703A (ja) 1991-05-24 1991-05-24 多軸ロボットの制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14812191A JPH04347703A (ja) 1991-05-24 1991-05-24 多軸ロボットの制御装置

Publications (1)

Publication Number Publication Date
JPH04347703A true JPH04347703A (ja) 1992-12-02

Family

ID=15445730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14812191A Pending JPH04347703A (ja) 1991-05-24 1991-05-24 多軸ロボットの制御装置

Country Status (1)

Country Link
JP (1) JPH04347703A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003533810A (ja) * 2000-05-16 2003-11-11 ブリガム・ヤング・ユニバーシティ 機械加工データの直接転送を用いた工作機械の制御方法及びシステム
JP2008207331A (ja) * 2008-03-24 2008-09-11 Sony Corp ロボット制御装置、ロボット制御方法及びロボット制御プログラム
JP2018153883A (ja) * 2017-03-16 2018-10-04 株式会社安川電機 コントロールシステム、コントローラ及び制御方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003533810A (ja) * 2000-05-16 2003-11-11 ブリガム・ヤング・ユニバーシティ 機械加工データの直接転送を用いた工作機械の制御方法及びシステム
JP2008207331A (ja) * 2008-03-24 2008-09-11 Sony Corp ロボット制御装置、ロボット制御方法及びロボット制御プログラム
JP4569653B2 (ja) * 2008-03-24 2010-10-27 ソニー株式会社 ロボット制御装置、ロボット制御方法及びロボット制御プログラム
JP2018153883A (ja) * 2017-03-16 2018-10-04 株式会社安川電機 コントロールシステム、コントローラ及び制御方法
CN108621152A (zh) * 2017-03-16 2018-10-09 株式会社安川电机 控制***、控制器以及控制方法
US11198219B2 (en) 2017-03-16 2021-12-14 Kabushiki Kaisha Yaskawa Denki Controller, control system, and control method
CN108621152B (zh) * 2017-03-16 2022-02-08 株式会社安川电机 控制***、控制器以及控制方法

Similar Documents

Publication Publication Date Title
US9063535B2 (en) Numerical control program execution by robot
US5303384A (en) High level language-based robotic control system
Adorno et al. Dq robotics: A library for robot modeling and control
Zivanovic et al. An approach for applying STEP-NC in robot machining
US4843566A (en) Robot motion control system
CN113836702A (zh) 机器人示教编程方法及机器人示教编程装置
Pan et al. RobMach: G-Code-based off-line programming for robotic machining trajectory generation
Nevliudov et al. Multithreaded Software Control of Industrial Manipulator Movement
JPH04347703A (ja) 多軸ロボットの制御装置
CN113733107B (zh) 机器人拖动示教的方法、机器人及计算机存储介质
Hwang et al. Interactive task planning through natural language
Lee et al. Implementation of RCCL, a robot control C library on a microVAX II
US20030093165A1 (en) Programming method for creating a control program of an industrial machine
Van Aken et al. Robot programming languages: the statement of a problem
JP7121221B1 (ja) 数値制御装置及び数値制御システム
JP2708445B2 (ja) 加工シミユレーシヨン装置
JP7276359B2 (ja) 動作指令生成装置、機構制御システム、コンピュータプログラム、動作指令生成方法及び機構制御方法
Makris et al. Generating motion of cooperating robots—the dual arm case
JPH0991022A (ja) ロボット制御装置
Kamisetty et al. Development of a CAD/CAM robotic translator for programming the IBM 7535 SCARA robot off-line
Bu-Hai et al. Kinematic Analysis and Three-dimensional Teaching of Six-Axis Robot Based on LinuxCNC
Xiao et al. Assembly language design and development for reconfigurable flexible assembly line
Hörmann Introduction to programming methods
Maitra et al. Need for and the development of a generic programming interface for industrial robots
JPH07168616A (ja) ロボットプログラム作成装置