JP2606172B2 - ロボット - Google Patents

ロボット

Info

Publication number
JP2606172B2
JP2606172B2 JP7023688A JP2368895A JP2606172B2 JP 2606172 B2 JP2606172 B2 JP 2606172B2 JP 7023688 A JP7023688 A JP 7023688A JP 2368895 A JP2368895 A JP 2368895A JP 2606172 B2 JP2606172 B2 JP 2606172B2
Authority
JP
Japan
Prior art keywords
robot arm
axis
block
command
servo
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.)
Expired - Fee Related
Application number
JP7023688A
Other languages
English (en)
Other versions
JPH0836411A (ja
Inventor
稔 加納
謙三 武市
明伸 竹本
弘 篠崎
良一 久富
治明 大槻
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7023688A priority Critical patent/JP2606172B2/ja
Publication of JPH0836411A publication Critical patent/JPH0836411A/ja
Application granted granted Critical
Publication of JP2606172B2 publication Critical patent/JP2606172B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ロボットアームの動作
制御のための演算処理方式に係り、特に演算能力の十分
でない演算手段を用いてロボットアームの動作制御をす
るに好適な演算処理方式に関する。
【0002】
【従来の技術】ロボットアームの制御には、主としてマ
イクロコンピュータのような、演算能力の十分でない演
算手段が用いられる。この際の演算処理内容は、次のよ
うに大別することができる。
【0003】(1)予め与えられているロボットアーム
の動作プログラムを順次呼び出し、解析処理するシーケ
ンス処理。
【0004】(2)シーケンス処理の結果、動作命令が
見出だされたときに、動作命令により規定される動作条
件、及び動作点データをもとに、ロボットアームの動作
仕様を決定する軌道計画処理。
【0005】(3)軌道計画に基づきロボットアームの
動作点を補間演算により求め、移動位置指令値であるサ
ーボ制御用の入力信号に変換する補間演算処理。
【0006】(4)サーボ制御用の入力信号とロボット
アームを駆動するアクチュエータからフィードバックさ
れる信号とにもとづき所定のサーボ制御演算を行ない、
前記アクチュエータを駆動する制御信号を生成出力する
サーボ制御演算処理。
【0007】初期のロボットアームの制御においては、
上記(4)は、サーボ制御用のアナログの外部回路とし
て構成されていた。従ってロボットアームを滑らかに連
続して動作させるために、一定のサンプリングレート、
特に演算手段がコンピュータであり逐次演算により上記
(1)〜(3)を実行するようなものにおいては、コン
ピュータの割込機能を用いて、定時的に割込を発生さ
せ、上記(1)〜(3)で得られた移動位置指令値をア
ナログの外部回路に与えていた(特公昭61−2964
号公報)。
【0008】上記外部回路は、当然ながら一定の遅れ要
素を含んでおり、従って、外部回路への上記移動位置指
令値の提供は、それ程短い周期である必要がなかった。
例えば50msecに1回程度の割合で良かった。また、前
記定時割込処理部は、上記位置指令値を外部回路に出力
するのみであり、演算所要時間は、無視できる程度であ
った。従ってコンピュータ等の演算手段は、ほとんど、
上記(1)〜(3)の演算処理に専念でき、その演算所
要時間は例えば30msec程度であり、ロボットの動作制
御上、問題にならなかった。
【0009】その後、計算機技術の進歩、特にマイクロ
コンピュータ技術の進歩により、前記外部回路を、演算
手段の演算処理に置換する、すなわち、ソフトウェアサ
ーボ化が可能な状勢が生まれてきた。
【0010】このように、外部回路をソフトウェアで置
換し、ソフトウェアでアクチュエータの駆動信号を直接
生成し、アクチュエータを動作させるようになると、前
記外部回路における遅れ要素がなくなるから、アクチュ
エータ系の安定かつ円滑な動作制御のために、前記
(4)の演算は短い周期、例えば定時的に2msec毎の定
時的演算で実行しなければならなくなる。
【0011】これは、アクチュエータからのフィードバ
ックループを含むマイナで高速の制御ループをソフトウ
ェアに置換する場合の当然の帰結であり、サンプリング
制御理論からも明らかである。
【0012】このようにして、従来外部回路で実行され
ていた制御理論を演算手段内部にとり込み、理論演算で
実行するソフトウェアサーボ方式とする場合、定時処理
であるサーボ制御のサンプリングレートの高周期化と共
に、サーボ制御演算負荷が増大するために、前記した
(1)〜(3)の演算をサーボ処理周期に同期させて実
行することはほとんど不可能になる。
【0013】このような難点を回避するものの一例とし
て、特開昭58−58610号公報に開示された方法が
ある。そこでは、定時処理であるサーボ制御演算の空き
時間を利用して、前記(1)〜(3)の演算を実行し、
得られた位置指令値をN分割してバッファに設定し、こ
れを定期処理であるサーボ制御演算部がサーボ制御の指
令値として順次読み出しこれを用いてサーボ制御を実行
しているので、実質上の前記(1)〜(3)の演算量が
減少することになる。
【0014】
【発明が解決しようとする課題】上記公知例には、次の
点が考慮されていない。
【0015】(i)ロボットアームを等速直線運動させ
る場合について詳細に開示している。この場合は、前記
(2)の演算負荷は、ほとんどないが、ロボットアーム
を起動停止させる場合に急加速、急減速することにな
り、ロボットアームに振動が発生したり、駆動系に過大
な負荷がかかり、望ましいものではない。そのために
は、適切なる加減速制御方式を導入しなければらない
が、そのための演算が必要である。
【0016】(ii)ロボットアームを直線及び円弧を連
ねた線路上を連続して動作させ、かつ線路上の教示点の
コーナ部で急激な動作方向変動などによる悪影響を避け
るためにコーナ近傍を円滑に動作させることが要求され
るような場合には、前記(2)の演算負荷は相当なもの
になる。従って、前記(3)の演算に加えて、前記
(2)の演算が、前記サーボ制御演算の空き時間を利用
してできないならば、前記(3)の演算のためのデータ
が供給されなくなり、その結果、サーボ制御のために位
置指令値が供給されなくなり、ロボットアームは制御不
能になってしまう。
【0017】(iii)サーボ制御演算は定期処理であ
り、前記バッファに指令される位置指令値に応答して動
作する。従って、ロボットアーム動作中はもちろんであ
るが、停止中においても、前記バッファに位置指令値が
供給されていなければならず、そのための演算負荷が存
在する。
【0018】(iv)前記バッファに供給される指令値に
より、ロボットアームの全自由度は常に協調して動作す
る。従って、ロボットアームの1部の自由度のみを単独
で動作させたい場合、自由度の1部毎を非同期で動作さ
せたいような場合に対処することが困難であり、そのた
めの演算負荷が増加する。
【0019】(v)ロボットアームの全自由度は、1ヶ
の定時処理割込で起動されるサーボ制御プログラムで同
時に処理されているから、上記の問題に対する対処が困
難であり、制御上の柔軟性に欠ける。また、さらに、ロ
ボットアームの制御装置を用いて、全く独立な外部装置
をサーボ制御するような場合にも対処することが困難で
ある。
【0020】本発明は、上記の難点を解消するためにな
されたものである。
【0021】
【課題を解決するための手段】上記目的を達成するため
の手段は、以下のようである。
【0022】(a)マイクロコンピュータ等の演算手段
の備える内部タイマもしくは、外部回路によって作成さ
れる外部タイマによって定時的に起動される割込処理プ
ログラムにより、ロボットアームの各自由度のサーボ制
御演算を行なう。
【0023】この場合のタイマー設定値は、ロボットア
ームのサーボ制御系が安定に動作するサンプリングタイ
ムTsを、ロボットアームの動作自由度Nで割ったも
の、もしくは、ロボットアーム以外の外部装置のサーボ
制御を独立または同期して動作させる場合は、(上記ロ
ボットアームの動作自由度+付加自由度)で割ったもの
よりも小さい値Tsmとする。
【0024】(b)サーボ制御プログラムは、前記定時
割込により起動されたとき、前記自由度のうちの1個の
みについてのサーボ制御演算を行ない、該当する自由度
の駆動信号を生成し、該当する自由度を動作させる。
【0025】(c)サーボ制御プログラムは、前記定時
割込により起動される毎に、循環的にサーボ制御演算を
実行する自由度を切り換えてゆく。従って、複数回の定
時割込の起動により、前記自由度について1回のサーボ
制御演算を完了する。このための全所要時間は、前記サ
ンプリングタイムTsより短かいから、ロボットアーム
は、システムとして安定に動作する。
【0026】(d)サーボ制御プログラムには、複数の
処理モードを設け、ロボットの動作自由度を制御するた
めの関節角またはエンコーダ値指令に応答して、指定さ
れた処理モードの補間アルゴリズムにより前記指令値を
補間して、サーボ制御目標値を算出し、サーボ制御目標
値に対してサーボ制御演算を実行させる。
【0027】(e)ロボットアームを動作させるために
は、動作させる自由度についての位置(関節角/エンコ
ーダ値)指令値、補間演算のパラメータを指定したの
ち、動作させるべき自由度及び動作方法を主制御処理部
よりコマンドとして与える。これにより、動作させたい
自由度を、動作させたい方法で個別または協調して自由
に動作させることができる。
【0028】(f)サーボ制御プログラムは、前記コマ
ンドにより指定された動作を完了し、ロボットアームの
指定された自由度を位置指令値の位置まで動作させる
と、自動的に位置指令値の位置を保持するよう動作す
る。また、コマンドの実行完了信号を主制御処理部に返
す。
【0029】(g)主制御処理部は、前記(1)〜
(3)より構成され、前記定時処理であるサーボ制御プ
ログラムの実行空き時間により実行処理される。
【0030】(h)主制御処理部の処理手順は、ロボッ
トアームに動作を開始させるときは、(1)→(2)→
(3)の順に演算を実行し、サーボ処理部に必要なパラ
メータ及び動作コマンドを送って動作を開始させる。動
作開始後は、サーボ処理部からの要求信号に応じて、逆
に(3)→(2)→(1)の順に必要に応じて逆上る演
算を実行し、サーボ処理部に必要なデータを遅滞なく供
給する。
【0031】
【作用】ロボットアーム及び追加軸の自由度は個別で
も、協調してでも任意に動作させることができる。ま
た、サーボ系に、エンコーダ値レベルでの補間機能を与
えたので、ロボットアームを特定する座標系以外の例え
ば直交座標系で動作させる場合においても、サーボ系に
はかなり荒っぽい指令値を与えるだけで良く、主制御処
理部の演算負荷を大幅に減じることができる。また、サ
ーボ制御中に逐次指令値を要求される。すなわち連続し
た経路動作を要求されるような場合においても、サーボ
制御に近い側から演算を実行し、必要に応じて、サーボ
制御に遠い側へ逆上るように演算処理するので指令値の
供給に遅滞が生じることがない。
【0032】
【実施例】以下、本発明を実施例により詳細に説明す
る。
【0033】図1に、本発明を実現するロボットシステ
ムの一構成例を示す。なお、図1では、追加軸について
は記載していない。
【0034】ロボットシステムは、ロボット本体2と制
御装置1より構成される。
【0035】制御装置1は、ロボットを手動で動作させ
たり、動作した位置を位置記憶手段18に記憶指令をし
たり、ロボットの動作手順を入力し、動作手段記憶手段
17に指令をしたり、動作手順記憶手段17に記憶され
た動作手順に従ってロボットに動作するよう指令したり
するための複数の操作スイッチ及び動作状況他を表示す
るための表示装置類を含む教示手段14と、演算手段1
5の出力するPWM指令を受けてPWM信号を発生する
PWM信号発生回路11、そのPWM信号によって動作
し、ロボット本体2、特にサーボモータに運転電流を供
給するパワー回路12と、サーボモータの回転位置を測
定するためにサーボモータに取りつけられたエンコーダ
のエンコーダパルスを計数するパルスカウンタ13と、
複数のロボットアーム先端部の経由する位置を記憶する
位置記憶手段18と、前記位置記憶手段18に記憶され
た複数の位置の動作手順を記憶する動作手順記憶手段1
7と、演算手段15の演算手順と記憶する演算手順記憶
手段16と、教示手段14の入力信号に応じて定められ
た演算手順記憶手段16内に格納されている適切な演算
手順を読み出し、必要に応じて動作手順記憶手段17及
び位置記憶手段に格納されている情報を用いて演算を行
ないロボットを動作制御する演算手段15より成ってい
る。
【0036】なおPWM信号発生回路11、パワー回路
12、サーボモータ2、パルスカウンタ13は図1に示
すような接続関係で、ロボットの動作自由度の数だけ設
けられるが、図1では1組しか示していない。
【0037】また、図1には示していないが、外部装置
とのデータ送受をするためのI/Oインターフェイス、
上位装置との通信のための通信インターフェイスも設け
られる。
【0038】図2に、本発明の説明のために利用するロ
ボットアームの一例を示す。図2のロボットアームは、
周知の水平多関節形ロボットであり、図示の如く、3個
の回転の自由度及び1ヶの直線運動の自由度を持ってい
る。
【0039】本発明は、特定の機構に限定されるもので
はなく、応用対象は、垂直多関節形ロボットでも、直交
動作形ロボットでも良いことはもちろんである。
【0040】図3に、教示手段14の操作スイッチ及び
表示装置の例を示す。詳細な説明は省き、以下の実施例
の説明の項で必要に応じて参照することにする。
【0041】先ず、図4を用いて、演算手段15の構成
について説明する。図4は、演算手段の最小機能構成を
示したものである。電源入の初期設定が終ると、演算手
段15は、動作モード釦取り込み部20において、動作
モード釦(図3の位置ティーチ、プログラムティー4、
原点合せ、テスト運転、連続運転釦)の入力を持ってい
る。
【0042】いずれかの釦が押されると、それに応じて
ブロック21〜25、すなわち、原合合せ、動作教示、
……再生動作の各処理部(主制御処理部)のいずれかを
実行する。動作教示処理部22の場合を除き、他の場合
はすべてロボットの動作制御に関するものであり、これ
らの下位に、これらの指示に従ってロボットアームの動
作制御を実行するサーボ制御部30が位置している。
【0043】次に図5〜図13を用いて、本発明の主要
部であるサーボ処理部について説明する。
【0044】図5においては、共通メモリ上にループカ
ウンタ34が準備される。このループカウンタは、定時
割込によりサーボ主制御30が起動される毎にブロック
33において、常に1ずつ増加されている。これは制御
軸数以下の値をサイクリックにとるよう動作する。従っ
て例えば、ロボットアームの動作自由度が4である場
合、ループカウンタの下位2ビットは、0→1→2→3
→0のように順次変化するから、これに動作軸1〜4を
対応させれば、上の理論により、制御すべき軸を決定す
ることができるから、判定された制御軸のサーボ制御の
準備ができる。これはブロック31の作用である。
【0045】ここでサーボ制御の準備とは、実際上の各
軸のサーボ制御アルゴリズムは余程特殊な場合を除き同
一であるから、各軸毎の参照したり記憶したりするデー
タエリア、入出力エリアのアドレッシング方式を制御軸
に対して設定することに相当する。これにより、ブロッ
ク32において動作させるべき制御軸についてサーボ制
御を実行する。ブロック33は前述の通りである。
【0046】ここでブロック31と32は順次実行され
ねばならないが、ブロック33の実行はどの位置であっ
ても別に演算上及び制御上の問題はない。以下の種々の
説明においても、この演算順序に依存しないものも出て
くるが、その指摘は省略する。要は、演算順序に依存せ
ず、同一の結果を与えるものは、同一であるとみなしう
るはずである。
【0047】以上により、サーボ主制御部30は、定時
割込により起動される毎に、ある1つの制御軸のサーボ
制御演算を実行し、起動毎に制御する動作軸を順次切り
換えていって、複数回の起動により全動作軸の1回のサ
ーボ制御を実行する形式となっている。
【0048】なお、図5には記載していないが、このサ
ーボ主制御部で、前記図3で示した教示手段14の操作
釦の取り込み、表示データの送出、並びに周辺装置との
入出力信号の取り込みまたは出力、さらには、定時性を
利用したタイマ処理等も行なうようになっている。これ
らも、サーボ制御部の演算負荷となるので、種々の負荷
低減策がとりいれられているが、ここでは詳述しない。
【0049】図6は、図5のサーボ処理部の動作タイミ
ング図である。定時間Tsm毎に起動され、順次第1軸、
第2軸、第3軸、第4軸の制御を実行し、次にはまた第
1軸から繰り返す。
【0050】□の部分が、サーボ制御に専有される時間
であり、残りの□の部分で主制御処理、すなわち、図4
のブロック20〜25が実行される。ここで、制御軸数
×Tsm<TsとなるようにTsmを決定しているので、サ
ーボ系は安定に動作し、発振を起すこともない。
【0051】次に、図7を用いて、図5のブロック32
で示される各軸毎のサーボ制御処理について説明する。
【0052】ここで、動作軸は第n軸とする。第n軸を
サーボ制御する際には、図7に示すような共通メモリ及
び第n軸用メモリを使用する。まず、ブロック100に
おいて、第1図に示すパルスカウンタ13より、第n軸
のカウンタ値を取り込む。次にブロック101におい
て、第n軸用メモリの前回取り込んだカウンタ値との差
をとり、速度を計算し、これを、第n軸用メモリの前回
の現在値に加えて、今回の現在値として記憶する。
【0053】また、取り込んだカウンタ値は、第n軸用
メモリに記憶する。ここで、速度はメモリには記憶する
ようにしていないが、このサーボ制御の実行完了までは
特定のワークレジスタ中に保存してある。次にブロック
102において、主制御プログラムより設定される共通
メモリ内のコマンドの有無を調べる。
【0054】ここで、共通メモリ内のコマンドは、次の
ような形式である。
【0055】〔〔コマンドデータ〕〔軸指定〕 すなわち、コマンドデータは、サーボ制御すべき内容を
指定する。軸指定部は、その指定ビットに対して、コマ
ンドデータの指定するサーボ制御の実行を要求してい
る。従って、ブロック102において第n軸の指定をチ
ェックする。第n軸の指定があれば、ブロック103を
実行する。その実行後もしくは第n軸指定がなければ、
ブロック104以下を実行する。
【0056】第n軸の指定があった場合は、ブロック1
03の第n軸コマンド受付処理を実行する。すなわち、
まず、コマンド受付完了を主制御処理に報知するため
に、軸指定を消去する。次にコマンド実行中であること
を示すために、共通メモリの各軸動作状況部に、前記コ
マンドの軸指定と同様の形式で、第n軸ビットを設定す
る。
【0057】次に、コマンドデータを第n軸メモリのサ
ブコマンドエリアへ移す。次に、主制御の指令する第n
軸用メモリ内の動作指令位置をサーボ制御の最終目標位
置としてとり込む。すなわち、サーボ目標位置→前回サ
ーボ目標位置動作指令位置→サーボ目標位置のようにメ
モリを置き換える。更に、ここでは、詳述しないが、指
定されたコマンド特有の準備処理を行なう。
【0058】このようにして、ロボットアームの動作制
御を各軸単独の動作制御に置換する。ブロック104で
は、第n軸メモリ内のサブコマンドを分析して、サブコ
マンドで指定されるサーボ制御処理を実行して、第n軸
モータの駆動信号を生成する。これはブロック105に
おいて第n軸モータの駆動信号として、図1に示す第n
軸用PWM信号発生回路11に出力され、第n軸のサー
ボモータが駆動制御される。
【0059】上記サーボ制御演算部および、もしくは、
駆動信号出力部においては、動作制御の安全のために、
位置偏差の大小、速度の大小、加速度の大小、駆動信号
の大小、動作位置の正当性などのチェックがなされ、異
常時には、対応する処置または表示出力処理を行なう
が、ここでは詳述しない。
【0060】また、上記説明では、コマンドは、共通メ
モリ内に配置され、コマンドデータと軸指定データとが
対になって与えられるとしているが、各軸毎のメモリ内
に配置され、コマンドデータのみ与えられるようにして
も良い。この場合は、コマンドがサーボ系に取り込まれ
た、もしくは、受けつけを示すために指定されたコマン
ドデータをクリアする、もしくは、コマンド発行側の認
知しうる別データを設定するような処理が必要である。
【0061】ここで、コマンドもくしはサブコマンドと
して指定されるサーボ制御内容には、例えば次のような
ものがある。
【0062】(i)原点合せのための (a)原点領域から脱出する制御 (b)原点領域を探す制御 (c)エンコーダのZ相を探す制御 (ii)加減速制御 (iii)強制減速制御 (iv)1ステップ送り制御 (v)継続制御 (vi)位置保持制御 (vii)非常停止制御 以下、図7のブロック104で実行されるサブコマンド
処理のうち、主なものについて詳述する。
【0063】図8は、位置保持制御を説明するブロック
図である。ここで、位置偏差eは、例えば、 e=サーボ目標位置−現在位置 である。ブロック110で、|e|が所定値以内か否か
がチェックされる。所定値以内であれば、ブロック11
1で図7の共通メモリ部の各軸動作状況エリアに設定し
た第n軸を消去し、第n軸の位置保持完了を主制御部へ
報告する。実際上はブロック110の判断は、前記判断
結果が所定回数以上連続するか否かなど、より安全のた
めの処理が含まれている。
【0064】次にブロック112で例えば次式で示す、
位置保持制御演算 PWM=KIe+ΣKSe KI:比例ゲイン KS:積分ゲイン が実行され、モータ駆動信号PWMが求められる。
【0065】この位置保持制御は、他の動作モードのロ
ボットアームのサーボ制御が完了したときに常に最終サ
ブコマンドとして設定され、次の動作コマンドが指定さ
れるまで位置保持動作を行なう。従って、主制御部は、
次の動作を指令するときはロボットアームの動作の終了
を持って次のコマンドを発行すれば良く、また、次の動
作を指令する指令がないときは、何もしなくて良いの
で、主制御演算負荷低減及び演算理論の簡略化が得られ
る。
【0066】図9は、1ステップ送り制御を説明するブ
ロック図である。ブロック120では第n軸のサブコマ
ンドを位置保持コマンドに変更する。これにより、第n
軸のサーボ制御が次回以降起動されると、位置保持制御
が実行されることになる。
【0067】ブロック121は図8の対応ブロック11
1と同様の処理である。これにより、1step送り動作は
即時に完了することになる。ブロック122も図8のブ
ロック112と同様の処理である。
【0068】1ステップ送りは、位置教示の際に微妙な
位置決め点にロボットアームを誘導するのに有用であ
る。動作は即時に完了するので、連続くり返し1ステッ
プ送りが可能である。
【0069】第10図は、現在位置よりサーボ目標位置
まで、第n軸を所定の加減速パターンに従って加速→等
速→減速によって動作させる場合のブロック図である。
ブロック130において、第n軸位置偏差 e=第nサーボ目標位置−第n軸現在位置 につき、|e|<所定値を調べる。
【0070】所定値以内であれば、サーボ目標位置に到
達しているからブロック131において、位置保持コマ
ンドを第n軸のサブコマンドに設定する。そして、ブロ
ック132で前述の位置保持制御を実行する。これによ
り次回以降第n軸のサーボ制御が起動されたときは、位
置保持モードで動作する。
【0071】所定値以上であれば、加減速制御を実行す
る。すなわち、ブロック133において、所定の方法で
加減速テーブルを検索して、動作速度指令を求める。テ
ーブル検索法(第22図)については後で詳述する。
【0072】次に、ブロック134において、速度サー
ボ処理を実行し、第n軸のモータ駆動信号を求める。
【0073】すなわち、例えば、 PWM=KIV(VD−V)+ΣKSV(VD−V) KIV:比例ゲイン KSV:積分ゲイン VD :速度指令 V :速度 によって、モータ駆動信号を求める。
【0074】第11図は、現在動作中のロボットアーム
を強制減速させ停止させる場合のブロック図である。こ
れは、位置ティーチ及びテスト運転時に有用である。
【0075】ブロック140において、減速テーブルの
検索が終端に達したかどうかを調べる。
【0076】達していればブロック141で位置保持コ
マンドを第n軸のサブコマンドに設定し、次回以降の動
作モードを変更する。次にブロック142において、第
n軸の現在位置、すなわち減速終了点位置を第n軸のサ
ーボ目標位置に設定し、ブロック143で位置保持制御
を実行する。これにより、第n軸は、減速終了点に位置
決めされる。
【0077】減速テーブルの終端点に達していなけれ
ば、ブロック144で1ステップより減速側の減速テー
ブル値をとり出し、動作速度指令に変換し、ブロック1
45において前述の速度サーボ処理を実行する。これに
より第n軸は所定の減速パターンに従って減速してゆ
く。
【0078】次に、継続制御について説明する。継続制
御は複数の教示点間を停止することなく連続して動作さ
せる場合とか、ロボットの動作関節角とは非線形の関係
にある座標系、例えば直交座標系でロボットアームを曲
線または直接経路に沿って動作させる場合に、ロボット
アームの動作経路を逐一動作指令位置として指定し、追
値制御の形式でロボットアームを動作させるコマンド方
式である。
【0079】ここで、もし、主制御処理部が、遅滞な
く、動作経路順に動作指定位置をサーボ系に与えること
ができるならば、継続処理は、前記した1ステップ送り
制御もくしはその変形した方式で実行することができ
る。しかし、サーボ制御処理は、最も優先度の高い定時
割込処理であり、主制御処理部とは非同期で動作してい
るから、データの授受について完全に1:1の同期をと
ることは難かしい。
【0080】また、実際のアームの動作状況及び動作経
路をみると、サーボ系の動作周期で動作指令を与える必
要はないことがわかる。すなわち、動作指令をサーボ系
内で何分割かして、その補間値をサーボ指令として動作
させた方が、主制御処理部の演算負荷低減の面でも、サ
ーボ処理部との同期の面でも好都合である。
【0081】図12は、上記思想にもとづく継続制御の
ブロック図である。図12のブロック図の場合、図7の
ブロック103において説明したコマンド受付処理を少
し変更する要がある。
【0082】図12(a)は、そのコマンド受付処理を
示したものである。図12(a)において、ブロック1
50において、共通メモリエリアのコマンドに指示され
たコマンドデータと第n軸のサブコマンドのデータを比
較する。
【0083】両者が不一致である場合は、継続制御の開
始が指令されたものとして、ブロック151及び152
を実行する。すなわち、ブロック151では、コマンド
されたコマンドデータを第n軸サブコマンドエリアへ取
り込む。さらに、ブロック152において、図7の第n
軸用メモリ内に設けられた(図示しない)カウンタエリ
アをクリアする。これは、後述の補間演算の初期化に相
当する。両者が一致する場合は何もしない。このように
して、継続制御の初期化が行なわれたのちの実際の継続
処理は、図12(b)で実行される。
【0084】図12(b)において、ブロック153
で、第n軸カウンタ値の値がテストされる。カウンタ値
が0の場合は、まだ、コマンドで指定された動作指令位
置をとり込んでいないので、そのとり込みのための処理
を行なう。そこで、ブロック154においてコマンドに
第n軸の指定があるかどうかを調べる。もし指定があれ
ば、ブロック155において、 第n軸サーボ目標位置→第n軸前回目標位置 第n軸動作指令位置→第n軸サーボ目標位置 のようにデータを転送して、第n軸サーボ動作指令位置
をとり込み、ブロック156において、コマンドの第n
軸の動作指定を消去する。これにより、主制御処理部
は、第n軸の動作指令位置を再び指定することができ
る。以上の取り込みが終ると、共通処理であるブロック
160〜164を実行する。
【0085】ブロック154において第n軸の動作指定
がなければ、継続制御は、終了したものとみなしてブロ
ック158において、位置保持コマンドを第n軸のサブ
コマンドに設定し、ブロック159において、前記した
図8の位置保持制御を実行する。ブロック158の作用
により、これ以降は、ロボットアームの第n軸は位置保
持制御される。
【0086】ブロック153のテストの結果、第n軸の
カウンタ値が0でない場合は、ブロック160〜164
を実行する。ブロック160においては、例えば補間演
算((カウンタ値+1)×(サーボ目標位置−前回サー
ボ目標位置)/N+前回サーボ目標位置)により、今実
行すべきサーボ制御の目標位置を求め、ブロック161
において、位置偏差eを求める。
【0087】 今回サーボ目標位置−現在位置 → 位置偏差e 次に、ブロック162においてカウンタ値をサイクリッ
クにカウントアップして、次の補間数値を定める。すな
わち、補間分割数がNであるとき、 カウンタ値=Nであるならば、0→カウンタ のように再設定する。これにより、補間の継続と次の第
n軸動作指令位置のとり込み処理の実行が保証される。
ここで、補間分割数Nが2のm乗である場合は、上記リ
ミッタ処理は不要であり、カウンタの下位mビットを用
いて、上記説明方法が実行できることはいうまでもな
い。
【0088】次に、ブロック163において、第n軸の
動作中を示す信号を共通メモリの各軸動作状況エリアへ
設定する。これは、この実施例では、継続制御を位置保
持モードで実行しているから、前記したようにそこで、
第n軸の動作完了信号が、各軸動作状況エリアへ設定さ
れるのを防ぐためである。
【0089】最後に、ブロック161で求めた位置偏差
eを用いて、前記した図8の位置保持制御を実行する。
【0090】上述の例では、補間演算を乗除算で実行す
る例を示しているが、演算時間面を考慮すれば、別にワ
ークエリアを設けて加算で実行した方がベターである。
そのための方法は簡単であるのでここでは省略する。
【0091】要は、図12において、次々と指令される
第n軸の動作指令位置をとり込み、それを1次補間して
サーボ制御し、ロボットアームの第n軸を継続動作さ
せ、動作指令がなくなれば最後の動作指令位置でロボッ
トアームの第n軸を位置保持するようにサーボ系は作用
する。
【0092】図12の例では、動作位置指令を次々と指
定するためには、同時にコマンドも指令しなければなら
なかった。
【0093】図13では別の例を示す。図13では、共
通メモリ内に複数の継続制御のための動作軸指定エリア
と各軸用のメモリ内に同じ大きさの継続制御のための動
作指令位置エリアを設け、これらを各軸用メモリ内のカ
ウンタ2を用いて循環的に順次参照してゆく構成として
いる。
【0094】各軸用メモリ内のカウンタ1は、図12の
場合と同じ働きをする。
【0095】図13(a)は、継続制御の受付処理部で
あり、ブロック170でコマンドを受けつけ、ブロック
171で継続制御実行のための初期化を行なっている。
この場合は、継続制御開始時に1回継続制御のコマンド
を主制御処理が発行すれば良いので、ブロック172に
おいて、コマンドの第n軸の軸指定を消去する。
【0096】図13(b)は、図12(b)と大略同様
であり、次の点が相異する。ブロック174で参照する
軸指定は、カウンタ2でインデックスされる共通メモリ
内の継続制御のための軸指定である。ブロック175で
取り込む動作指令位置は、カウンタ2でインデックスさ
れる第n軸メモリ内の継続制御のための動作指令位置で
ある。ブロック176も同様の変更である。
【0097】ここではブロック177で、インデックス
をサイクリックに更新する処理が追加されている。この
カウンタ2の値は、前記した追加エリアの大きさ内での
カウント値を示し、エリアをこの値を用いて参照するよ
うになっている。
【0098】このようにして、循環的に参照し、取り込
みが完了すると軸指定を消去するようにしているので主
制御処理部は、この軸指定が消去されたエリアのデータ
は取り込まれたことがわかるので、最初は順次全エリア
に軸指定と動作指令位置を置き込み、その後は軸指定を
参照しながら順次データの設定を行なってゆけば良いこ
とになる。そのためには、併示したカウンタ3を用いれ
ば良い。
【0099】またこの軸指定の参照は各軸毎に部分的に
行なっても、全体軸として行なっても良いことはもちろ
んであり、それは、コマンドの軸指定及び各軸動作状況
についても同様のことが云える。
【0100】以上述べた、定時割込により起動されるサ
ーボ制御部についてまとめると次のようになる。
【0101】サーボ制御部は定時割込により起動された
とき、ロボットアームの動作自由度のうちの1ヶのみに
ついてのサーボ制御演算を行ない、循環的にサーボ制御
演算を実行する動作自由度をきりかえてゆくよう動作す
る共に、ロボットアームの関節角またはそれに相当する
量で指定される動作目標位置へ到達する方法及び動作軸
を示すコマンドにより、各動作軸を個別または協調して
動作制御する。
【0102】また、コマンドによって種々の動作方法、
補間方法または、継続動作等を自由に指定することがで
き、従来のようにサーボ制御部が起動されるとすべての
動作自由度が指定された目標位置に追随するよう動作
し、目標とする動作を実現するために常にサーボ制御部
に動作目標値を指定する必要のない、自律的サーボ系を
構成しているので、主制御部の演算負荷の低減のみなら
ず、理論演算量をも低減する多大の効果を奏する。
【0103】次に、主制御処理部の処理方式を説明する
に先立って、その演算内容、特に数値処理内容について
説明する。
【0104】まず、図14に示すような2点間を直線で
動作させる場合の関係式は次のようである。
【0105】
【数1】
【0106】これより、直線上の中間点までの動作距離
をlとすると、中間点の位置Pは、
【0107】
【数2】
【0108】となる。
【0109】次に、図15に示すような3点で決定され
る円弧上を動作させる場合の関係式は、次のようであ
る。
【0110】直線Pi→P{i+1},P{i+1}→P{i+2}の関
係式は、前記と同様である。ここで、{i+1}、{i+2}はそ
れぞれPの下付きの添字を意味する。
【0111】
【数3】
【0112】これより、3角形の頂角θは
【0113】
【数4】
【0114】である。方向ベクトルeiに垂直で円の中
心に向かう方向ベクトルは、
【0115】
【数5】
【0116】である。円の半径をγとしたとき、図15
を参照して、次の関係があるから、
【0117】
【数6】
【0118】これを用いて、
【0119】
【数7】
【0120】より、円の半径γが求められる。
【0121】
【数8】
【0122】従って、点Piより円の中心へ向かうベク
トルPiOが以下のように求められる。
【0123】
【数9】
【0124】長さγでベクトルPiOにが直交し、ロボ
ットアームの動作方向へ向かうベクトルγβ1は、次の
ように求められる。
【0125】
【数10】
【0126】である。
【0127】また、ロボットアームの円弧上の全動作距
離L0は、
【0128】
【数11】
【0129】である。
【0130】これより、全弧上の中間点Pの点Piから
の動作距離をlとすると、中間点Pの座標値は、次式で
与えられる。
【0131】
【数12】
【0132】但し、 α=l/γ (0≦l≦L0) である。
【0133】以上は、位置のみについて言及した。しか
し、ロボットアームの動作制御の場合には、手先の姿勢
も同期して制御されねばならない。
【0134】第2図に示すロボットアームの例では、動
作始点(X《S》,Y《S》,Z《S》,θ124《S》)と
動作終点(X《E》,Y《E》,Z《E》 ,θ124《E》)
との間を直線または曲線補間する場合、位置成分と回転
角成分が混在し、動作制御(補間演算)の優先順位決定
が難しい(ここで、《S》及び《E》は上付きの添字であ
る)。そこで、グリップ回転角速度の設計仕様をみたす
ような仮想グリップ長さを導入する。これにより、グリ
ップ回転角θ124《E》−θ124《S》を長さに変換する定
数Kl及び逆に長さを角度KOに変換する定数を定める
ことができ、次式の補間演算の基礎数値を得る。
【0135】
【数13】
【0136】これより、補間演算においては、
【0137】
【数14】
【0138】により中間角度を得ることができる。
【0139】中間点の位置については、 l=l'LO/Lmax を用いて、前記式により中間点の位置を得ることができ
る。LO/Lmaxは後述の長さの縮小率に相当する。
【0140】次に、直線または円弧上をロボットアーム
が動作するとき、ロボットアームを適当な加減速パター
ンに従って動作させるための加減速パターン処理方式に
ついて説明する。
【0141】これに関し従来用いられている方法は、台
形の速度パターンとする方法(特開昭61−19320
4号公報)、速度テーブル及び距離テーブルを用意し、
それを検索することにより加減速を含む動作速度を決定
する方法(特開昭59−83210号公報)、函数演算
を利用する方法(特開昭61−5311号公報)などが
提案されているが、実用性またはシステム仕様の変更に
対し柔軟性を欠くものが多く、ティーチングによって多
様な動きをするロボットアームに適用するには問題が多
かった。
【0142】ここでは、より一般的で汎用性があり、か
つロボットアームの多様な動作条件にも自由に適合でき
る加減速処理方式を提供する。
【0143】図16に、本発明にかかる加速パターンの
一例を示す。図16において、横軸はテーブルアドレス
であり、縦軸は、無次元速度を表わす。図16は、具体
的には、図17に示す加速及び減速用のテーブルで構成
されている。
【0144】図17において、加速及び減速テーブルの
パターンは任意のもので良く、ロボットアームの加減速
制御に最適なものを設計者が設定することができる。ま
た加速と減速テーブルの大きさも異なっていても良い。
両者を組み合せて使用するときの最大の無次元速度が、
使用時に同一または略同一で、両者を切り換えたとき
に、速度ギャップが生じないようになっていれば良い。
【0145】また、加速時と減速時で同一パターンを利
用する場合には、加速テーブルのみ設けて、減速時にも
共用するようにすることもできる。また、図17に示す
加速及び減速テーブルは、ロボットの各動作軸毎の動作
用及び前述の直線動作用など個別に用意することも自由
であり、それによって、以下に述べる本発明の主旨がか
わるものではない。
【0146】以下では、加速テーブルと減速テーブルと
の2つを設け、すべての動作条件で共用する場合を例に
とって説明する。前記した変形例に対しても、多少の手
直しで適用できる。
【0147】加速及び減速用テーブルを共用して、かつ
任意のテーブル部分を参照できるようにするために、各
動作軸及び直線動作用に、図17に示すような、第n軸
用ROMメモリを用意する。以下の説明では、第n軸用
の表現は、全動作軸及び直線動作用に個別に用意される
ものの一代表例の名称とする。
【0148】第n軸用として加速及び減速テーブルを参
照するために、図17のテーブルに対し、ラベルを付
す。
【0149】 ASTRN:加速開始参照アドレス AMAXN:加速終了参照アドレス DMINN:減速終了参照アドレス DMAXN:減速開始参照アドレス 第n軸ROMメモリのエリアASTR、AMAX、DM
IN、DMAXNに、上記ラベルの値を格納する。これ
は、例えば、アセンブリ言語で、下記のように記載し、 ASTR DC.W ASTRN アセンブラにかければ、自動的に、ASTRのラベルを
付されたエリアにASTRNの値、すなわちテーブルア
ドレスが格納されることにより達成される。これによ
り、加速時は、加速テーブルのASTRNからAMAX
N、減速時は、減速テーブルのDMINNからDMAX
Nの範囲を参照することが可能となる。また、各テーブ
ルのラベルの位置を任志に設定しなおすことにより、任
意の範囲でテーブルを参照することが可能となる。
【0150】第n軸ROMメモリのSHUKUで定義さ
れるエリアには、テーブルの参照縮少率を定義する。例
えば、定義した値が1.0であるときは、テーブル参照
間隔は、1個ずつ、すなわちテーブルを順次参照するこ
とをあらわし、0.5に定義したときは、テーブルを1
ヶ置きに参照することを表わす。すなわち、定義した値
の逆数が、テーブル参照間隔を表わす。あとで述べるよ
うに、この逆数値は整数となる必要はない。
【0151】第n軸ROMメモリのSPDG1〜SPD
Gnは、ロボットアームを動作させるときに指定される
速度に対応し、前記加速または減速テーブルの最大値に
その値をかけると結果が指定された速度になるように選
ばれた変換定数を格納するエリアである。ここでは、離
散的にn個の変換定数を準備するようにしているが、1
個だけ準備し、指定された速度との倍率をかけて実際の
変換定数を算出するようにしても良い。第n軸RAMメ
モリのSPDGのエリアは、このSPDGnの値または
その実動作のために補正された値を記憶するために設け
られている。
【0152】KASOKU及びGENSOKUのエリア
は、テーブル参照時の現在参照する各テーブルのアドレ
スを格納している。DELTBLは、テーブルの参照間
隔、すなわち前記SHUKUの値の逆数もしくはその補
正された値を格納し、テーブル参照のアドレス計算に利
用される。
【0153】KASOKU、GENSOKU及びDEL
TBLは、少数以下の値を含むテーブル参照アドレス及
び参照ステップを格納しているが、KASOKUまたは
GENSOKU内の値を使ってテーブルを参照するとき
は、少数以下の値を切り捨てて行なう。この機能によ
り、固定ピッチで作成されているテーブルをフリーピッ
チで参照することができる。
【0154】第n軸RAMメモリのIKPULS及びI
DPULSのエリアには、それぞれ第n軸ROMメモリ
で参照定義されたテーブル範囲内のテーブル値の積算値
が記憶されている。それぞれの値×縮少率×変換定数は
それぞれ、加速距離及び減速距離を与える。
【0155】IKPULS及びIDPULSの値は、も
しテーブルが固定的に扱われる場合には、前もって計算
して第n軸メモリ内に格納しておくことも可能である。
ここでは、演算システム初期化時に演算手段が第n軸R
OMメモリを参照して積算値を求め、前記エリアに格納
してあるものとする。
【0156】以上のテーブル及びメモリが準備され、ロ
ボットアームの動作距離L0及び速度V0(実際上は、第
n軸ROMメモリのSPDG1〜SPDGnを参照する
インデックス)が与えられた場合のテーブル参照の計画
手順を図18を用いて説明する。
【0157】ブロック4000は、指定された速度V0
をインデックスとして、第n軸ROMメモリのSPDG
1〜SPDGnより、変換定数を読み出し、第n軸RA
MメモリのSPDGエリアに設定する。
【0158】ブロック4001は、加速及び減速テーブ
ルの総メンバ数を、第n軸ROMメモリに格納されてい
るテーブル参照アドレスを用いて求める。テーブル参照
アドレスのピッチが1である場合は、ブロック4001
に示す式となる。ピッチが1以外の場合は、それに応じ
て修正すれば良い。この値は、ロボットアームを加減速
のみで動作させ、逐一テーブルを参照するとしたときの
テーブル参照回数をふし、それはまた、ロボットアーム
の移動時間を示していることになる。
【0159】ブロック4002は、ロボットアームを加
減速動作のみで動作させたときの動作距離Lを求めてい
る。
【0160】ブロック4003では、指定された動作距
離L0と、前記Lの比較を行なっている。もし、L0≧L
の場合は、指定された動作距離L0が、加減速テーブル
で規定される加減速距離より大である。すなわち、ロボ
ットアームを、加速→等速→減速のパターンで動作させ
る必要があることをふし、この場合は、ブロック400
4の処理を行なう。
【0161】ブロック4004では、等速部を含めたテ
ーブル参照回数、実質上は、ロボットアーム第n軸の移
動時間ITIMEを求める。これは後述するように、ロ
ボットアームの全動作軸を同時スタート、同時ストップ
で動作させるような場合に利用される。
【0162】次に、減速積算値IDPULSをDPUL
Sに修正し、さらに、テーブル参照ステップDELTB
Lを求める。DPULSは、減速時の減速制御の基準値
として、DELTBLは、テーブル参照のステップ増/
減分として用いられる。
【0163】もし、L0<Lの場合は、テーブルパター
ン通りに加減速を行なうと、ロボットアームが目標位置
を通りすぎてしまうことを示している。このような場合
に、テーブルパターンの高速側を切りすててしまう方法
が考えられるが、この方法によれば、せっかく最適に設
定準備したテーブルパターンが有効に利用されないため
に、ロボットアームの不測の振動及び加速度の急変が起
ったりするので好ましくない。
【0164】また、テーブル値を縮少、すなわちSPD
Gを小さくして、L0=Lとなるように修正して利用す
る方法も考えられるが、この場合は、動作距離が短かい
にも関らず、動作時間がテーブルパターンに設定した時
間と同一、一定の長い時間となり、好ましくない。
【0165】そこで、本発明では、テーブル値の縮少
と、テーブル参照ステップの拡大を行ない、L0=Lと
なるように補正する方法を提供する。その原理は、テー
ブル値を縮少すれば、最大速度及び加速度が減少する。
従ってその分だけテーブル参照ステップを拡大して、初
期のテーブルパターンに示される加速度になるよう補正
すれば、ロボットアームの動作特性を良好に保ったま
ま、動作時間の短縮ができることにある。ここで問題と
なるのは、縮少、拡大に伴なう配分率をいかに決定する
かである。
【0166】テーブル値が、関数式を用いて準備された
ものであるならば、テーブル値の縮少率をパラメータと
して、最大加速度が同一となる参照ステップの拡大率を
求めることが可能である。
【0167】ここでは、任意テーブルパターンに対処で
き、かつ、容易に配分率を決定する方法として、ブロッ
ク4005を示している。テーブルパターン縮少率をM
=√(L0/L)とし、テーブルステップ拡大率を1/M
とする。これにより、変換定数SPDGをSPDG×M
→SPDGに修正する。
【0168】テーブル参照回数もしくは移動時間ITI
MEは、N×SHUKU×Mとなる。減速積算値は、I
DPULS×SHUKU×Mとなる。テーブル参照ステ
ップDELTBLは1/(SHUKU*M)となる。
【0169】以上の準備のあと、ブロック4006にお
いて、テーブル参照の初期アドレスをKASOKU及び
GENSOKUに設定する。
【0170】以上述べたように、各動作軸毎もしくは直
線/曲線動作時のテーブル参照計画が求められる。
【0171】次に、全動作軸を同時に動作開始させ、同
時に動作を終了させる場合のテーブル参照計画の補正法
について図19を用いて述べる。
【0172】まず、ブロック4010において、図18
を用いて求められた各動作軸の移動時間ITIMEか
ら、同時動作させるべき動作軸について最大移動時間I
TIMEMAXを求める。
【0173】続いて、ブロック4011において、同時
動作させる軸について、ブロック4012〜4014を
実行させる。ブロック4012では、第n軸の移動時間
増分ΔITIMEを求める。ブロック4013では、時
間増分だけ、等速移動部を追加するとした場合の第n軸
の動作距離Lを求める。
【0174】 L=Ln+ΔTIME×テーブル最大値×SPDG Lnは、第n軸の動作距離、テーブル最大値は、第n軸
が参照するテーブル値の最大のもの、すなわち無次元最
大速度、SPDGは、第n軸のテーブル変換定数であ
る。次にブロック4014において第n軸の変換定数を
縮少する。
【0175】SPDG=SPDG×Ln/L これにより、前述のサーボ系で、各軸独立に動作させる
ようサーボ制御しても、ロボットアームは、同時スター
ト、同時ストップするように動作する。
【0176】次に、各動作軸を非同期で動作させる場合
について説明する。これは、例えば、ロボットアーム
は、同期して動作しているが、追加軸が同辺装置との関
連で別モードで動作する場合とか、図20に示すよう
に、物品をA点よりH点へ移載する場合に、第2図に例
示したようなロボットアームで作業させる場合にこのよ
うな動作モードが起る。
【0177】ここでは図20の場合について説明する。
図20は、例えばA点で物をつかみ、B点まで直線上を
持ちあげ、C’,D,E,F’点を経由してG点よりま
た直線上を真下のH点へ移動して、H点に物品を置くよ
うな作業を実行する動作軌跡を示している。これは、通
常の5自由度または6自由度の垂直多関節形ロボットア
ームで作業を行なわせる場合、5または6つの自由度を
同期させて、図20の経路に従うように動作させねばな
らない。これについては後述する。
【0178】図2に示すようなロボットの場合は、上下
方向の動きと、水平方向の動きは、独立に分離できる。
すなわち、上方向への点A→Cへの動きと、水平方向の
点C→Fへの動きと、下方向への点F→Hへの動きに分
離できる。そして、物品を移載するような作業の場合、
ロボットアームが周辺の装置と干渉しないようにするた
め、直線部A→B及びG→Hの動作さえ確保できれば、
B→C’→D→E→F’→Gの動作経路はどのようであ
ってもかまわない場合が多い。
【0179】このような場合には、点Aから上方に向か
って上下軸を動作させ、点Bに到達した時点で、点C→
Fに向かって水平方向の動きを開始させる。
【0180】また、水平方向の動きが点Fへ到達する前
に、点Eに到達した時点で上下軸を下方に向かって動作
させ、水平方向の移動が完了し、点Fに到達したとき
に、上下軸が点Gを通過するように計画してやれば、そ
の作業目的を達成することができる。
【0181】このような動きに対しては、上下の動きと
水平の動きは、あるタイムラグの下で非同期の動きをす
る。なおここで、水平方向C→Fの動きは、直線上を運
動するものであっても、ロボットアームの各関節角を基
準にして動作するものであってもよい。このような動作
をさせるメリットは、加速−等速−減速の動作モードで
A→C,C→F,F→Hを動作させる場合と比べて、ロ
ボットアームが先取りモードで動作するから、移載作業
のタクトタイムが大幅に短縮されることである。
【0182】この動作のタイムチャートを第21図に示
す。第21図よりわかるように、まず、上下動作を開始
し、上下軸が点Bに到達する時間tAB後に水平動作を開
始させる。水平動作中に上下軸は、直線C→Fで表わさ
れる高さに到達して停止する。水平動作開始後、水平動
作の所要時間tCFより上下軸がF→Gへの移動に要する
時間tFGを差しひいた時間後に、再び上下軸に下方動作
を指令してやれば良いことになる。
【0183】上述の説明からもわかるように、上記の動
作を規定するのは、2つのタイマである。上方動作開始
後水平動作開始までのタイマの設定値をt1,水平動作
開始後、再び下方動作を指令するタイマの設定値をt2
とするとロボットアームのすべての動きを満足させるタ
イマの設定値は、次のようになる。
【0184】t1=tAB2=tCF−tFG(但しt2≧tBC) =tBC (但しt2≧tBC) ここでt2をtBCに設定するような条件、すなわち、上
下の動作距離が長く(動作時間が長く)、水平の動作距
離が短かい(動作時間が短かい)ような条件では、図2
0のG→Hの間よりも上下すなわち、FとGの間の位置
から→Hまでの間を上下軸は直線で下降する。もし、常
にG→Hの間のみを直線にする場合は、水平動作の動作
時間tCFをtBC+tFGと長くしてやれば良い。それは、
前述した図19の手法を適用して行なうことができる。
【0185】また、上下動作、すなわち点A→B及び点
G→Hの間の動作時間は、点A→C及び点G→Fについ
て、図18で示したテーブル参照計画を実行することに
より得られる変換定数SPDG及びテーブル参照ステッ
プDELTBLを用いて、テーブルを順次検索し、点A
→C及び点G→F動作のためのテーブル参照回数を求め
ることにより得られる。ここでは、その詳細は簡単であ
るので省略する。
【0186】次に、ロボットアームを停止させることな
く、教示点間と連続して動作させる場合について説明す
る。一例として、図20に示す3次元空間の曲線上A→
B→C’→D→E→F’→G→Hを軌跡制御する場合に
ついて述べる。
【0187】軌跡は、直線A→B,円弧B→C’→D、
直線D→E、円弧E→F’→G、直線G→Hより成り、
点Aより加速を始めて、途中経路で等速となり、点Hに
減速して停止するとする。各直線及び円弧は、前記した
演算式により、決定される。
【0188】しかし、ロボットアームの動作は、図20
の軌跡のすべてを事前に計算して制御することはできな
い。その理由は、軌跡の途中経路を記憶するメモリが膨
大なものとなること、ループするような軌跡の場合は、
最後の減速位置が決められないこと、動作中、操作スイ
ッチまたは外部入力等により停止信号が発せられたとき
停止しなければならないこと等による。
【0189】従ってこの例の場合は、最初の直線の軌道
が決定された段階で、図18に示すテーブル参照計画に
つき、ブロック4000、4001、4002、400
4のみを実行し、テーブルの縮少を伴なわない加減速計
画を立て、この加速計画に伴ってロボットアームの動作
を開始し、次後、あとに継続する軌跡の軌道計画につ
き、動作を継続し、最後に停止すべき軌跡の軌道計画が
求まった段階で既に求められた減速計画に従って減速す
るようにする。
【0190】このようにすることにより、途中で停止信
号が入った場合の減速もスムーズにでき、またループす
る軌跡に対しては停止することなく連続して動作させる
ことができる。具体的内容については後述する。
【0191】以上のように軌道計画されたときに、ロボ
ットアームを加減速動作させる場合のテーブル参照法に
ついて図22を用いて説明する。
【0192】図22において、初期値として、加速テー
ブルの参照開始アドレスを示すアドレスがKASOKU
に、減速テーブルの最終アドレス(最小値)がGENS
OKUに、テーブル参照ステップがΔに、減速テーブル
値の総和がDPULSに、テーブル値をロボットアーム
を動作制御する値に変換する変換定数がSPDGに設定
されている。これはテーブル参照計画につき説明したも
のと同様である。
【0193】また、テーブル参照を制御するフラグとし
て、Flagに加速モードが設定されている。このような
条件で、図22のテーブル参照が実行される。
【0194】まず、最初はFlagに加速モードが設定さ
れているから、ブロック4100の判断によりブロック
4101が実行される。ブロック4101では、KAS
OKUの示すアドレスが最大を越えたか否かがチェック
される。最初は越えていないから、ブロック4103が
実行される。すなわち、KASOKUの示す加速テーブ
ルアドレスより加速テーブル値を読み出し、レジスタに
設定する。
【0195】次に、テーブル参照ステップΔをKASO
KU及びGENSOKUに加える。ここでGENSOK
Uに加えているのはここで説明は省略するが、動作途中
でロボットアームを強制減速させる場合の減速テーブル
アドレスを設定するためである。これにより次に参照す
べきテーブルアドレスが更新される。
【0196】ここで前記したようにΔ,KASOKU,
GENSOKUは小数点以下の値を含み、実際のテーブ
ル参照時はKASOKUまたはGENSOKUの整数部
が用いられる。そして得られたテーブル値は、ブロック
4110において変換定数が掛けられ、実際にロボット
アームを駆動する速度を得る。
【0197】上述のプロセスは繰り返し実行され、加速
度の速度パターンが次々にテーブルを利用して求められ
る。そして遂には、KASOKUテーブルの最大上限に
到達する。このときはブロック4102及び4110が
実行される。すなわち、加速が完了して以降は定速また
は減速モードで動作することになるから、減速の開始ア
ドレスをGENSOKUに設定し、判断フラグFlagに
定速モードを設定し、GENSOKUの示す減速テーブ
ル値をレジスタに読み出し、変換して動作速度を得る。
【0198】次にテーブル参照が起動されたときは、定
速モードであるから、ブロック4104以降が実行され
る。すなわち、 残り移動量=目標位置−現在位置 または、 目標動作距離−既動作距離 減速所要量=減速テーブルの積算値(DPULS)×変
換定数(SPDG) の比較が行なわれ、前者が後者より大であれば、減速の
必要がないから、ブロック4105及び4110の処理
が実行される。
【0199】GENSOKUの示すテーブルアドレス値
が読み出されるから、GENSOKUの値が変化しなけ
ればその値は一定であり、すなわち等速の速度指定が得
られ、ロボットアームは等速で動作することになる。こ
の状態が続くと、ロボットアームは順次動作目標点に近
づくから、ブロック4104の判断結果はNOとなり、
ブロック4106以降の処理が実行される。
【0200】ブロック4106においては、GENSO
KUの値がテーブル参照ステップΔだけ小さくされる。
すなわち、減速テーブルの低速側の値を示すアドレスを
示すような値が更新される。ブロック4107及び41
08は減速テーブルの定義外を参照するのを防止するた
めの安全対策である。
【0201】ブロック4109において、GENSOK
Uの示すアドレスより減速テーブル値が読み出される。
また、その読み出した値だけDPULSの値が減じら
れ、次の参照のときの減速所重量の値を更新している。
ブロック4110は、前述した内容の共通処理である。
このようにしてロボットアームに加速→等速→減速また
は加速→減速を指令する指令値が得られる。
【0202】ここで、上述では示さなかったが、移動中
のロボットアームを強制的に減速して停止させる必要が
生じた場合には、前記したように、どこから減速しても
良いように、減速テーブルを参照するためのアドレスが
GENSOKUに設定されているから、これを用いて常
時ブロック4106以降を実行させれば、ロボットアー
ムを減速制御することができる。この場合は、ブロック
4109のDPULSに関する補正を行なう必要はな
い。
【0203】以上のテーブルの参照計画及びテーブル参
照によってロボットアームの1軸を加減速制御した場合
の例を図23に示す。図23において、は動作距離が
短く、テーブルパターンが縮少されて加速→減速のモー
ドで動作した場合であり、は動作距離が十分長く、加
速→等速→減速のモードで動作した場合であり、は丁
度両者の境界に相当する場合である。
【0204】以上述べたように、本発明に係る加減速テ
ーブル処理法によれば、動作距離の大小に関せず、常に
最適なパターンでロボットアームを動作させることがで
きる。
【0205】以上述べた加減速パターン処理法において
は、無次元速度をテーブル値とする加速テーブル及び減
速テーブルを利用するものとして説明した。ここで、加
速パターンと減速パターンが同一である場合は、加速パ
ターンテーブルのみを設け、減速テーブルと共用するよ
うにしても本発明の内容とは何ら変更することなく適用
することができる。
【0206】また、テーブル値を無次元速度でなく、無
次元動作距離としてテーブルを構成しても良い。この場
合に無次元速度が必要とされたときは、テーブル値の差
を取ることにより容易に無次元速度を求めることがで
き、上述の説明におけるテーブル処理方式を多少変更す
ることで対処できる。
【0207】また加速テーブルは無次元速度を、減速テ
ーブルは無次元動作距離を基準として与えるようにして
も本発明に係る内容は容易に適用でき、実質同一結果が
得られる。
【0208】また、加減速パターンが、ある所定の関数
によって記述できるときは、前記テーブルに代えて、関
数値演算処理部を設け、テーブル参照を関数値演算とす
れば、容易に本発明を実現できる。この場合は、関数特
有の特性を利用して加減速計画を実現することもでき、
これは前述した通りである。
【0209】以上の説明では、直線/曲線動作をさせる
場合には、動作距離の表現によってあたかも位置のみに
ついてであるかのように説明した。しかし、ロボットア
ームの回転角についても上述の内容で実行されることは
いうまでもない。これについては考え方を明示するため
に、以下の座標変換の項で一つの実施例を示す。
【0210】次にロボットアームを直交空間上で一定の
軌跡を描いて動作させる場合に重要となる座標変換手法
について説明する。
【0211】図24、図2ロボットアームの座標系の定
義を示す。ロボットの支柱軸上にZ0軸をとり、設置面
上にX0軸、Y0軸をとり、これを静止座標系とする。こ
こでX0軸は、ロボットの正面方向とする。
【0212】θ1,θ2,θ4,Z30が与えられたとき
の、グリップ先端の位置(X0,Y0,Z0)は次式で与
えられる。
【0213】 X0=a10cθ1+a20cθ12+a40cθ1240=a10sθ1+a20sθ12+a40sθ1240=Z30−a50 ここで、a10,a20は、それぞれ第1及び第2アームの
長さである。a40,a50は、上下軸下端に取りつけら
れたグリップ先端位置の水平面内及び垂直方向成分であ
る。また、
【0214】
【数15】
【0215】である。
【0216】通常のロボットの座標変換に関する演算の
基礎式は上式であるが、ここではa10≧a20>>
10,a41と仮定して、次の正規化を行う。
【0217】
【数16】
【0218】その結果、上式は次下による。
【0219】
【数17】
【0220】上記では、正規化の定数を2a10にしてい
るが、これに限定されるものではない。例えば、正規化
の定数をa10またはa20のように定めても良い。
【0221】位置(X,Y,Z,θ124)が与えられた
ときの関節角(θ1,θ2,Z0,θ4)を求める。但し、
ここではZは扱わない。(後のエンコーダ値と関節角と
の関係式の項で扱う)。
【0222】まず、以下のように定義する。
【0223】
【数18】
【0224】このとき、式(3.3)は次のようにな
る。
【0225】
【数19】
【0226】幾何学的な位置関係は、図25に示すとお
りである。図25から、解(θ1,θ2)の組が2個存在
することが予想される。いずれの解を採るかは、θ2
符号により決定できる。θ2の符号は、あらかじめSG
N(θ2*)として与えられているとする(ここで * は
θ2の上付きの添字である)。
【0227】式(3.5)により、次のようにθ1が求め
られる。
【0228】
【数20】
【0229】同様に、式(3.5)より次のようにθ2
求められる。
【0230】
【数21】
【0231】ロボットの機械原点、すなわち原点合せ姿
勢から、図24に示す静止座標原点姿勢までロボットを
動作させるときのエンコーダ値の変化量をEio、サーボ
モータの1回転当りのエンコーダ値をEio*、減速機の
減速比をRiとすると、ロボットの機械原点姿勢から静
止座標原点姿勢までの関節角の変化量、すなわち原点角
θioは、次のように与えられる(ここで * はEioの上
付きの添字である)。
【0232】
【数22】
【0233】但し、ボールスクリューで駆動される第3
軸の場合は、上式の減速比1/Riをボールスクリュー
のリードli(mm)で置換することにより、正規化され
た移動距離Z3'が次式のように与えられる。
【0234】
【数23】
【0235】同様の考察により、エンコーダ値Eiとロ
ボットの動作関節角θiとの間には、次の関係式が成立
する。
【0236】
【数24】
【0237】ここで、式(3.14)のθ4の右辺第3項
は、ベルト伝達系に介在する歯車系の歯数比が異なるこ
とによって生じた第2軸回転の干渉成分である。また、
4*は第2軸干渉時の伝達系の減速比を表わす(ここで
* はEioの上付きの添字である)。
【0238】さらに、上式の○で囲んだ+,−の符号
は、ロボット機械系のエンコーダ値が増加する場合に、
静止座標系のロボット関節角が増加するときに上式の符
号をとり、逆の場合は反転すべきものであることを示し
ている。
【0239】以上は、図2に示すロボットアームについ
て示したが、これに限定されるものでなく、一般の関節
角ロボットについても、同様の関係を導びくことができ
る。なお、ここで特記すべき事項は、本アルゴリズムは
正規化手法を導入したことにより、演算量が減少するこ
と、並びに固定少数点演算方式を採る場合には、演算有
効数字を増大することができるという顕著な効果を示し
ていることである。
【0240】また特公昭61−2964に示されるよう
に通常は、ロボットアームを動作させるための教点点の
記憶に、X,Y,Zのような直交座標値を用いる方法が
採られているが、直交座標値を用いる場合には、位置か
ら関節角を求める場合に多値解が存在すれば求解ができ
ないという問題がある。これに対し、エンコーダ値を記
憶するようにすれば、常に求解可能であり、ロボットア
ーム動作制御比の問題がなくなる。
【0241】以上、サーボ制御処理及びロボットアーム
を動作させるための基本要件について説明した。以下、
本発明を具体的に実現する処理内容について詳述する。
【0242】まず、図示しない電源スイッチを投入する
ことにより、ロボット制御部は初期化され、操作入力待
の状態となる。同時にサーボ制御処理部も初期化され、
動作軸すべてについて非常停止コマンドを与えられ、一
定のサンプリング周期毎に、各軸について循環的に非常
停止コマンドを実行する。
【0243】ここで非常停止コマンドは各動作軸のアク
チュエータに、何も駆動信号を与えないよう動作させる
指令である。従って、例えば図2のロボットアームは、
静止したままである。また、図2のロボットアームで上
下軸に負荷のかかるようなロボットアームの場合は、図
示しない負作動ブレーキが作動し、上下軸の落下を防ぐ
ようになっている。また、上下軸以外の軸は、パワーが
供給されない状態であるので、手で触れると自由に動く
状態である。
【0244】次に、図示しないサーボオン電源を投入す
る。この場合、図2のロボットアームで、上下軸に負荷
のかからないものであれば、サーボ処理部は、今まで通
り、非常停止コマンドを実行し続ける。
【0245】上下軸に負荷のかかるもので、上下軸に負
作動ブレーキを付けられたものであれば、ブレーキが解
除されるので、サーボ処理部の非常停止実行部で、サー
ボオン信号を検知して、上下軸のみについて、前記した
位置保持コマンドを実行するようモードを切り換えて、
処理するよう構成する場合もある。
【0246】また、図3のロボットアーム以外のもの、
すなわち、垂直多関節形ロボットアームの場合は、常に
重力負荷を受けているので、アームの全てまたはほとん
どの動作軸に負作動ブレーキをつけているので、これが
解除されることになり、そのため、全動作軸につき、前
述の位置保コマンドを実行する、すなわちいわゆるサー
ボロックされる。
【0247】図3に示すようなロボットアームについて
も、全軸サーボロックされるよう動作させる場合があ
る。これは、非常停止コマンド実行処理部に、サーボオ
ン信号検出部を設け、サーボ処理部が自律的に、位置保
持コマンドを実行するよう構成することにより、容易に
実現できる。
【0248】ロボット制御部は、操作入力待の状態にあ
るので、図4に示したように、操作入力に応じて種々の
動作を実行することになる。
【0249】まず、第1に操作入力すべきものは、図3
に示す原点合せ釦を押してロボットアームの原点合せを
実行することである。これにより、第1図のパルスカウ
ンタ初期化と、ロボットアーム姿勢の初期化及び演算処
理部の初期化が行なわれ、演算系と機構系の同期が得ら
れ、以降は、演算系の指示に従って、ロボットアームを
種々の動作モードを動作させることができるようにな
る。
【0250】図4の原点合せ処理部21は、前述の原点
合せコマンドを、ロボットアームの所定の軸について、
順次サーボ処理部に提供し、その完了を待って別のコマ
ンド、別の動作軸に与えることにより実行する。ここで
は、これの詳細は省略する。
【0251】次に、図3に示すプログラムティーチ釦を
押すと、ロボットアームの演算処理は、図4の動作教示
処理部22に移る。動作教示においては、図3のデータ
入力キーを操作して、オペコード表示部にロボット動作
制御コードである記号言語を設定し、セットキーを押す
ことにより、図1の動作手順記憶手段17の所定のエリ
アに動作制御コードが格納される。これを繰り返すこと
により、一連のロボットアームの動作手順を作成するこ
とができる。動作制御コードについては、世にいうロボ
ット言語とほぼ同様であり、周知でもあるので、詳細は
省略する。
【0252】次に、図3に示す位置ティーチ釦を押す
と、演算処理は図4の位置教示処理部23に移る。
【0253】位置教示処理部では、ロボットアームを図
3の位置調整キーを操作して、目標とする動作点まで動
かし、位置決めしたのち、データ入力キーを操作してス
テップ表示部へステップ番号(図1の位置記憶手段18
の記憶アドレスを表わす)を入力し、セットキーを押し
て、位置決め点の位置データ(ここでは特にEncorder
値)を、ステップ番号の示す図1の位置記憶手段の記憶
アドレスに格納する。ここでステップ番号の入力は、い
つでも良く、セットキーを押すまでに入力されていれば
良い。
【0254】もう一つの別の処理は、既に位置の教示が
終っている教示点を修正したい場合のロボットアームの
動作制御であり、この場合は、図3のデータ入力キーを
操作して、既教示済のステップ番号をステップ表示部に
入力すると、図4の位置教示処理部23は、ステップ番
号に対応する位置データの存在をチェックし、存在すれ
ば、オペコード表示部に、入力されたステップ番号位置
へのロボットアームの動作制御コードを表示する。
【0255】このとき、図3のステップキーを押せば、
位置教示手段は、ロボットアームをオペコード表示部に
表示された動作制御コードに従って、ロボットアームを
ステップ番号位置へ動作させる。したがって、この位置
で前記した位置調整キーを操作して、ロボットアームの
微調整を行ない、セットキーを押して、既教示点を修正
することができる。
【0256】また、この位置教示モードにおいては、ロ
ボットアームの動作方向を何種類か選択することができ
る。その1は、ロボットアーム固有の動作軸を個々に動
かす関節モードである。このモードでは、例えば図3の
アーム(=右>)の調整キーを押せば、ロボットの第1
アームがロボットに向かって右に動き、(<前=)の調
整キーを押せば、ロボットの第2アームがロボットに向
かって左に動く。
【0257】その2は、前記したように、ロボットアー
ム固有の動作軸とは異なる直交座標系の軸に沿ってロボ
ットアーム先端を動かす直交モードである。このモード
では、例えばアーム(=右>)の調整キーを押せば、ロ
ボットアームは+Y軸方向に、アーム(<前=)の調整
キーを押せば、ロボットアームは、+X軸方向に動く。
【0258】その3は、ロボットアーム先端に取りつけ
られたグリップの方向(X'軸)とそれに直角な方向
(Y'軸)に沿ってロボットアーム先端を動かす手先モ
ードである。このモードの動きは、直交モードの場合の
YをY'、XをX'のように置き換えたものである。この
ような動作方法は、例えば図3のユーティリティキーを
押し、データ入力キーで定められたコードを入力し、セ
ットキーを押すことにより選択または切り換えることが
できる。
【0259】また、この位置教示モードにおいては、ロ
ボットの動作速度をいく通りにか変更指定することがで
きる。例えば、図3のデータ入力キーのHキーを押す
と、ジョブ表示部にHの表示ができ、予かじめ定められ
た高速の動作速度、Lキーを押すと、ジョブ表示部にL
の表示が出、予かじめ定められた低速の動作速度を指定
することができる。
【0260】位置教示モードにおいて、調整キーを押し
てロボットアームを目標位置に誘導位置決めする手順
を、図26を用いて説明する。ここで、アームの動作方
法、動作速度は、前記したようにしてすでに設定されて
いるものとする。また、ロボットアームの現在位置は、
エリアNに設定されているものとする。
【0261】位置教示モードにおいて、図3の位置調整
キーのいずれかが押されると、図26に示す処理が実行
される。まずブロック5020において、押された調整
キーにつき、指定された動作モードにおける動作限界位
置を求めエリアTに設定する。動作限界位置は、例え
ば、動作モードが関節モードであり、押された調整キー
が、アーム(=右>)である場合、図2のロボットアー
ムの第1アームが右側へ動ける限界のエンコーダ値であ
る。
【0262】このような各動作軸の限界位置は、図示し
ないが、あらかじめシステム設計時に決められ、共通R
OMまたはRAMメモリ上に記憶されている。したがっ
て、押された調整キーに応じてメモリから該当するもの
を読み出してくれば良い。
【0263】そして、現在位置エリアNに格納されてい
る各軸のエンコーダ値を目標位置エリアTのエンコーダ
値エリアに移し、前記読み出した限界位置を調整キーで
指定されたエリアTのエンコーダ値エリアに格納し、更
に、このエンコーダ値を前記した正変換手法により、関
節角、直交座標値及び手先姿勢に変換し、エリアTの該
当エリアに設定すれば良い。
【0264】動作モードが直交モードである場合のロボ
ットアームの動作限界位置は図2のロボットアームの場
合次のように求めることができる。ロボットの現在位置
と教示釦により指示される動作方向ベクトルより、ロボ
ットの動作範囲境界上に位置する動作目標位置を算出す
る方法を示す。
【0265】(1)アームの伸縮から決まる動作目標値 グリップの姿勢は静止空間で一定に保つとする。このと
き、グリップ先端を直線動作させると、第2アームの先
端も直線動作する。第1アームの回転を自由とし、第2
アームの回転を上下限値内に押えると図27の内側リミ
ット及び外側リミットで示される同心円ではさまれた第
2アームの先端部の動作領域が得られる。
【0266】図27の位置(X0,y0)から方向ベクト
ル(VX,Vy)の方向へ動作させるときの動作境界上の
位置(x,y)は次のように求められる。
【0267】ロボットの動作距離をl(≧0)とする
と、動作直線は次式である。
【0268】X=x0+lvX Y=y0+lvy 同心円の中心を通る動作直線への直交直線は、次式であ
る。
【0269】X=l1y Y=−lvX 2直線の交点は、垂線の長さをl1、点(X0,y0)よ
り交点までの長さをl0とすると、 l1y=x0+l0X −l1X=x0+l0y を解いて、次式のように求められる。
【0270】l1=x0y−y0X0=−x0X−y0y ここで、l1は常に≧0である。l0は動作直線が交点の
方向へ向かうとき<0、交点より離れる方向へ向かうと
き>0である。
【0271】以上の図示により、点(x0,y0)は常に
動作範囲にあるとすると、動作目標点を与えるlは次式
となる。
【0272】(i) l1≧Ri (動作直線が内側リミッ
トと交わらない) または l0≦0 (動作直線が外側リミットへ向かっている) のとき l=l0+√(R0×R0−l1×l1) (ii)l1≦Ri (動作直線が内側リミットと交わる) かつ l≧0 (動作直線が内側リミットへ向かっている) のとき l=l0−√(Ri×Ri−l1×l1) (2)グリップとロボット本体との干渉により制御され
る目標値 第2アーム先端にオフセット付のグリップがついた場
合、“周辺装置との干渉”及び“ロボット本体”との干
渉の問題が生じる。ここでは、“ロボット本体”との干
渉だけ扱う。グリップベクトルを(GX,Gy)とすると
ロボットのグリップ先端の軌跡は、次のようになる。
【0273】X=x0+GX+lvX Y=y0+Gy+lvy 図27において、干渉半径Rkの内側リミットのみ存在
するとすれば、(1)の場合と同様に求解できる。
(1)の場合と同様の記号を流用すれば、グリップとロ
ボット本体との干渉により制御される目標値は、次のよ
うになる。
【0274】(i)l1≦Rkかつl0≧の場合 l=l0−√(Rk×Rk−l1×l1) (3)第1アーム関節角リミットにより制限される目標
値 第1アームが関節角リミットに固定されると、第2アー
ムの回転のみ自由となる。そこで、第1アーム先端を中
心とし、第2アーム長を半径とする円とロボットの第2
アーム先端の動作直線との交点が、第1アームの関節角
リミットにより制限される、以下に示す目標値となる。
【0275】l=l0±√(a2×a2−l1×l1) ただし、 第1アーム関節角が下限リミットにある場合 第2アーム関節角>0(右きき)なら−符号 第2アーム関節角<0(左きき)なら+符号 第1アーム関節角が上限リミットにある場合 第2アーム関節角>0(右きき)なら+符号 第2アーム関節角<0(左きき)なら−符号 をとるものとする。
【0276】(4)グリップ回転角リミットにより制限
される目標値 グリップ回転角θ4がリミットにあると、θ1+θ2+θ4
=一定であるからθ1+θ2=一定すなわち、第2アーム
の姿勢が静止空間上で一定となる。したがって、位置
(x0,y0)を第2軸の位置ベクトル分だけシフトした
動作経路、 X=x0−a2Cθ12+lVX Y=y0−a2Sθ12+lVy と第1アーム先端の描く円軌跡との交点が、グリップ回
転角により制御される、次下に示す目標値となる。
【0277】l=l0−√((1/2)×(1/2)−l1×l1) 以上の解析により得られた動作距離の中の最小のもの
が、実際の動作限界点を与える限界動作距離である。
【0278】以上の動作距離l及び方向ベクトルυ及び
現在位置Nより、動作限界位置(X,Y,Z,θ124
を求めることができるから、これを逆変換することによ
り、メモリエリアTに動作限界位置を設定することがで
きる。
【0279】ブロック5021においては、動作速度、
動作方向に対して与かじめ定められた量だけ移動する、
ブロック5020のデータをもとに、同様の考え方で、
ロボットアームの微小移動量を求めることができ、これ
をエリアNに設定する。
【0280】ブロック5022においては、前記エリア
Nのエンコーダ値を、前記したサーボ制御用の各軸用メ
モリの動作指令位置エリアに設定し、サーボ処理部に1
ステップ送りコマンドを実行させる。1ステップ送り制
御コマンドを共通メモリのコマンドエリアに設定し、1
ステップ送りは、前記したように即座に完了するから、
エリアNに設定した位置データは、ロボットアームの現
在位置を示すことになる。 従ってブロック5023に
おいて、所定時間の間に調整キーが離されたことが確認
されると、この処理は完了することになる。このモード
により、ロボットアームを微少送りさせて精密位置決め
することができる。ブロック5023において、ずっと
調整キーが押され続けていることが確認された場合に
は、ブロック5024及び5025を実行してロボット
アームを加減速制御モード動作させる。 すなわち、ブ
ロック5024において、動作モード、動作速度、及び
現在位置N、目標位置Tが与えられているから、前記ま
たは類似の方法によりロボットアームの軌道計画をす
る。
【0281】次に、5025において軌道計画に従が
い、定められた加減速パターンでロボットアームを動作
させる。ここで、図示していないが、ブロック5025
においても、調整キーの押されているか否かは常にチェ
ックされており、もし離されると、ロボットアームは、
強制的に定められた減速パターンに従って減速停止させ
られる。
【0282】このモードにより、ロボットアームを任意
の方向に動かして、任意の位置に大略の位置決めをする
ことができる。
【0283】次に、前記した既に教示した点へロボット
アームを動作させる場合について図28を用いて説明す
る。前記したように図3のオペコード表示部にロボット
アームの動作制御部コードが表示されているとする。ま
た動作モード、動作速度も設定されているとする。
【0284】図28において、図3のステップ釦が押さ
れると、ブロック5040において、図3のオペコード
部に表示されたオペコードを解説し、オペコードに含ま
れている位置No.から図1の位置記憶手段18に記憶さ
れている位置(エンコーダ値)をとり出し、前記したエ
リアTのエンコーダ値エリアに設定し、更に座標変換に
よって関節角及び直交座標位置及び姿勢を求め、これも
エリアTの対応するエリアに設定する。これにより、現
在位置N及び動作目標位置Tが定まる。
【0285】ブロック5041及びブロック5042の
内容は、ブロック5021及びブロック5022と同じ
である。但し、ブロック5022においては、図3のス
テップ釦の継続的操作がチェックされる。これにより、
既に教示された位置へロボットアームを動作させること
ができる。
【0286】このようにして、ロボットアームの動作制
御プログラム及び動作位置の教示が完了すると、その教
示結果を再生することができる。図3のテスト運転釦を
押すと、図4のテスト動作処理部24、図3の連続運転
釦を押すと、図4の再生動作処理部25が起動される。
【0287】ここで、テスト動作処理部24と再生動作
処理部25の相異は、前者の場合は、与かじめ定められ
た低速でしかロボットアームが動作しないよう、すなわ
ち動作速度が制限されるテスト運転であるのに対し、後
者は、実運転モードであり、前記起動制御プログラムに
指定された速度通り動作することである。
【0288】以下では連続運転釦を押した場合について
説明する。
【0289】次に、データ入力キーを操作して2桁のジ
ョブ番号を入力すると、図3のジョブ部にそれが表示さ
れる。次にセットキーを押すと、もし指定された番号の
ジョブが存在すれば、その動作制御コードのステップ番
号がステップ部に、動作制御コードがオペコード部に表
示される。ここでステップ釦を押すと、表示されたオペ
コード部の動作制御コードが1ヶ実行されて終了する。
【0290】もし動作制御コードがロボットアームの動
作を指定するものであったときは、前記した位置教示の
際のステップ釦押しと同様の方法でロボットアームを動
作させる。順次ステップ釦を押すことにより、動作制御
コードが定められた順に1個ずつ実行される。これは、
ロボットアームの動作については、内容的には前記した
位置教示の際のステップ釦押しの場合と同様であるの
で、詳細は省略する。
【0291】リピート釦を押した場合は、次の動作制御
コードを読み出して実行する。これは、動作制御コード
の停止コードにそうぐうするか、または停止釦が押され
るまで継続される。従って、動作制御がループするよう
なコードが教示されていれば、ロボットアームは一連の
定められた順次で定められた経路で繰り返し動作するこ
とになる。
【0292】リピート釦が押されたときの処理を図29
〜図33を用いて説明する。
【0293】図29において、ブロック6000は、前
記した内容の再生運転開始のための釦操作を示してい
る。ブロック6001で次にリピート釦を押すと、ブロ
ック6002は、ストップ入力またはその他のここでは
示さない停止入力があるまで、ブロック6003以降の
処理を繰り返し実行するよう作用する。もしストップ入
力他があった場合は、ブロック6001へ戻り、リピー
ト釦入力を待ち、入力があると同じことを繰り返す。
【0294】ブロック6003以降の繰り返しループで
は次のような処理を行なう。ブロック6003では、順
次、動作手順コードを動作手順記憶手段より取り出しそ
の内容を解読する。ブロック6004で、解読結果に応
じてブロック6005〜6009のいずれかの処理を実
行させ、完了すると、また繰り返して、ブロック600
3から処理を実行する。
【0295】ブロック6005は、直接本発明に関係し
ない動作コード処理を実行する部分である。ブロック6
006は動作速度が指定されたとき、それを記憶する部
分である。ブロック6007は、ロボットアームを間欠
運転または連続運転で動作させる指定を記憶する部分で
ある。
【0296】ここで、間欠運転とは、例えば、教示され
た2点間を直線で結ぶ動作、またはロボットアームの機
械座標系基準で動かす動作等において、加速−等速−減
速−停止のモードで運転する方法を示す。連続運転と
は、複数の教示点間を動作開始点及び終了点ではそれぞ
れ加速及び減速を実行させるが、途中の教示点では停止
することなく連続して運転する方法を示している。
【0297】ブロック6007では、図31に示す追加
的処理が必要であり、これは後述する。ブロック600
8は、関節で動くか直交で動くかの指定を記憶する部分
である。ブロック6009は、ロボットの動作命令コー
ドを実行する部分であり、詳細は、第30図により説明
する。
【0298】ブロック6020は、ロボットアームの次
の軌道計画が終了した時点で停止入力等によりロボット
アームが停止させられたような場合の再開条件をチェッ
クしている。すなわち、既に軌道計画が完了している状
態では、今指令された動作命令を実行することができな
いから、ブロック6021以降の処理により、既軌道計
画値を実行させる。すなわち、ブロック6021で既軌
道計画を実行するようサーボ系に指令する。これは後述
する、図32の処理により実行される。
【0299】次にブロック6022で指定された動作方
法が間欠モードか否かをチェックし、間欠モードであれ
ば、ブロック6023において、指令した軌道計画の実
行完了を待つ。これも後述する、図32の処理を用いて
実行することができる。
【0300】次にブロック6024において、同一ステ
ップの動作コードを再実行させるよう準備して、処理を
終了する。これにより、演算処理ループは、ブロック6
003へ戻り、ブロック6009、すなわち、再度図3
0の軌道計画が実行される。前記の処理の必要ない場合
は、ブロック6020の判断により、ブロック6025
以降の処理が実行される。
【0301】ブロック6025では、位置記憶手段よ
り、動作コードに指定された位置番号に相当する位置デ
ータ(エンコーダ値)をとり出し、更に、ブロック60
26で座標変換により、ロボットアームの関節角及び直
交座標値、姿勢を求める。
【0302】次に、ブロック6027において、軌道計
画ができるだけの位置データがそろったかどうかがチェ
ックされる。すなわち、例えば、図20に示すような、
先行後続関係で動作するモードであれば、始点A、終点
H及び中間点の高さを示す位置データ、直線で動くモー
ドであれば、始点と終点を示す位置データ、円弧上を動
くモードであれば、始点と中間点と終点を示す位置デー
タがそろっているかどうかがチェックされる。
【0303】もし、そろっていなければ、処理を終了
し、図29のブロック6003に戻る。従って、その後
の演算処理により、ブロック6027のチェック結果が
イエスとなり、ブロック6028以降の処理を実行す
る。ブロック6028では、指定されたロボットアーム
の軌道計画をし、前記したようなロボットアームの動作
定数を決定する。
【0304】次に、ブロック6029において、ロボッ
トアームが停止中であるか否かかがチェックされる。こ
れは、前記した共通メモリの各軸動作状況エリアを参照
することにより判断される。停止中であるならば、ロボ
ットアームを駆動開始する処理、すなわちブロック60
30、6031、6032の処理が行なわれる。これは
前記したブロック6021、6022、6023の処理
と同一である。これにより、間欠モードの時は、軌道計
画に従って加速−等速−減速−停止でロボットアームが
動き、連続モードのときは、ロボットアームの軌道命令
のみが出される。
【0305】ブロック6029において、ロボットアー
ムが動作中であると判断されたときは、ブロック603
3の処理へ移る。ブロック6033では、停止入力のチ
ェック例えば図3のストッパ釦入力のチェックが行なわ
れる。ストッパ入力がなければ、ブロック6034にお
いて、軌道計画完了のフラグを設定し、ブロック603
5において、補間部が新しい軌道計画をとり込むのを待
つ。そして、軌道計画が取り込まれると、次の軌道計画
を実行するために、図29のブロック6003へ戻る。
【0306】停止入力があった場合は、ブロック603
6において、サーボ系の動作完了を待ち、すなわち、以
前設定した軌道計画に従ったロボットアームの動作完了
を待つ。この場合、新しく設定された軌道計画は、実行
されないままで、図29のブロック6002の作用によ
り、ブロック6001でのリピート釦入力待となる。こ
れにより、前記したブロック6020〜6024の処理
の意味が明らかとなっていよう。
【0307】以上のようにロボットアームが動作してい
る時に、図29のブロック6007の処理が指令された
場合の詳細を図31によって説明する。図31の処理は
図30の処理でみたように、連続モードのときは、ロボ
ットが動いている状態で先行して動作コードの解読が行
なわれ、また軌道計画データが作成されるようになって
いるので、動作モードを切り換るような動作モードが発
生したときに、この先行分を処理するために必要とされ
ている。
【0308】図31において、ブロック6050の処理
は、前記ブロック6007に示したものと同一である。
【0309】次にブロック6051において指定された
動作モードのチェックが行なわれる。もし連続モードの
ときは、何もする必要がない。間欠モードであるとき
は、ブロック6052において、軌道計画されたデータ
があるか否かがチェックされる。もしあれば、更にブロ
ック6053において、ロボットアームは動いているか
否かがチェックされる。そしてロボットアームが動いて
いるならば、ブロック6054、6055、6056の
処理により、現在の動作に続けて、軌道計画データをも
実行させ、その完了を待って、処理を終了する。
【0310】ブロック6053の判断でロボットアーム
が動いていなかった場合は、軌道計画値をブロック60
57、6058において加減速モードで実行させてその
完了を待って処理を終了する。またブロック6052の
判断の結果、軌道計画されたデータがない場合は、ブロ
ック6059においてロボットアームが動いているか否
かを判断し、動いていればブロック6060で停止を待
って処理を終了する。
【0311】このようにして、すでに計画されたものを
すべて実行し、ロボットアームが停止するまで待つよう
にしているので、それ以降の欠間運転に整然と動作モー
ドを移すことができる。
【0312】上述の説明では、軌道計画時に例えば関節
モードと直交モードが混在して指定されるような場合に
ついては説明を省いているが、実用の演算処理では、位
置データ及び動作手順データの正当性をチェックして安
全側の動作するよう処理手順が作成されていることのみ
付言しておく。
【0313】次に、図30、図31において、サーボ系
を起動する。サーボ制御の完了を待つの表現で示したブ
ロックを実際に実行する手順を図32を用いて説明す
る。
【0314】図33では、STATEにより実行状態を
切り換えるようにしている。STATE=0は、全動作
軸のサーボ制御完了を表わしている。従って、図30、
図31においてサーボ制御の完了を待つの表現は、図3
2の演算ブロックを実行し、STATEの値をチェック
することにより、達成される。従って、完了を待つため
には、図32の演算ブロックを繰り返し実行し、STA
TEの値をチェックすることと等価である。
【0315】また、STATE=0である場合は、いく
ら実行指令が発行されても、実質上は何も実行しないの
で、サーボ指令制御のダミー処理ルーチンとして利用す
ることもできる。
【0316】また、この処理は、図20で例をひいて説
明した先行、後続動作を含むロボットアームの動作を制
御できるように計画されている。従って、軌道計画処理
部も、そのように軌道計画データを準備するものとす
る。
【0317】図32において、サーボ系を動作させるた
めには、求められた軌道計画のデータの動作始点データ
をエリアNに、終点データエリアTに、また動作に必要
な計画データをワークエリア(図示せず)にセットして
STATE=1として最初に実行させれば良い。
【0318】図32において、ブロック6100におい
てSTATEの値が調べられ、その値に応じて、各処理
部が実行される。STATE=0の場合は前記したよう
に、何もしない。
【0319】STATE=1の場合は、サーボ系駆動の
ための最初の処理である先行動作軸の起動を行なう。ブ
ロック6101において、2をstateにセットし、
次の実行stateを設定する。次にブロック6102
において、先行タイマを設定する。但し、先行タイマの
計画された値は、先行動作軸がない場合は“0”とされ
ている。次にブロック6103において先行動作軸の有
無がチェックされ、有ればブロック6104において先
行動作軸につき、サーボ起動命令が発行される。
【0320】図2のロボットアームの例では先行動作軸
は上下軸であり、機械座標系で動作させることができる
から、サーボ処理部の先行動作軸用メモリの動作指令位
置エリアに、先行動作目標位置を設定し、その加減速制
御のためのテーブル検索用データを各種演算定数エリア
に設定したのちに、先行動作軸につき加減速動作させる
コマンドを発行する。これを受けて、サーボ系は、先行
動作軸につき加減速制御を開始する。
【0321】次に、ブロック6105で、再度サーボ指
令部の演算を実行させる。具体的には、ブロック610
5は、ブロック6100へジャンプする命令であれば良
い。
【0322】これにより、再びブロック6100が実行
され、state=2に設定されているから、ブロック
6111以降が実行される。ブロック6111では、前
記設定された先行タイマがチェックされる。設定時間が
経過していなければ、前記したように図32が繰り返し
実行される過程で経過を待つ。
【0323】先行動作軸がない場合は、前記したことか
ら当然ながら、即、設定時間の完了となる。設定時間が
経過していると、ブロック6112において、次のst
ate=3が設定される。次にブロック6113で後続
動作軸の有無がチェックされ、有れば、ブロック114
で後続軸を起動するためのタイマがセットされる。次に
ブロック6115において中間動作軸につきサーボ起動
命令が発行される。
【0324】中間動作軸の動作が関節モードである場合
は、中間動作の各々について中間動作軸用メモリの動作
指令位置エリアに、中間動作軸の目標位置を設定し、そ
の加減速制御のためのテーブル検索用データを各種演算
定数エリアに設定したのちに、中間動作軸につき、加減
速動作させるコマンドを発行し、サーボ系は中間動作軸
につき、加減速制御を開始する。
【0325】中間動作軸の動作が直線動作等の直交モー
ドである場合は、前記の動作指令位置エリアに、中間動
作軸動作の初期位置として現在位置を設定し、中間動作
軸につき、継続制御動作させるコマンドを発行する。こ
れによりサーボ系は、中間動作軸につき継続動作制御を
開始する。
【0326】この場合、サーボ制御部の項で説明したよ
うに別の起動方法がある。このためには、図13に示す
カウンタ3を継続制御軸指定エリア及び継続制御動作指
令位置エリアのインデックスとして用いる。そのため
に、まず、継続制御軸指定エリアをすべてクリアし、カ
ウンタ3をクリアし、カウンタ3でインデックスされる
継続制御軸指定エリアに中間動作軸指定を設定し、継続
制御動作指令位置に中間動作軸の前記初期位置を設定
し、カウンタ2をサイクリック1増加したのち、前記コ
マンドを発行する。これによりサーボ系は、中間動作軸
につき継続動作制御を開始する。
【0327】なお、ここでは初期値を最初のエリアのみ
設定するように説明したが、全エリアに軸指定及び初期
位置を設定のたのち前記コマンドを発行しても良い。
【0328】またさらには、前記した最初のエリアに設
定したのち、後述の直交補間部の機能を用いて、残りの
1部または全部を設定したのち前記コマンドを発行して
も良い。上記いずれかの方法により、継続時のサーボ制
御が開始されるが、この場合は、後述のように順次継続
制御のための目標位置を与えてやらなければならない。
次に、図32が実行されるとSTATE=3であるか
らブロック6121が実行される。ブロック6121で
は、先行動作軸なしであったかもしくはあっても先行軸
の動作が終了しているかがチェックされる。先行動作軸
の有無は軌道計画の結果として与えられている。
【0329】また、先行動作軸の動作終了は前記した図
7の各軸動作状況エリアの先行動作軸につき、チェック
することにより判別できる。もし、判定結果がyesで
あればブロック6121で後続タイマの完了がチェック
れ、完了であればブロック6122でSTATEに4が
セットされ、あれば、前記した先行動作軸の場合と同様
にして、ブロック6124で後続動作軸のサーボ制御が
開始される。
【0330】次に、図32が実行されるとすでに動作す
べき軸について、すべてサーボ制御コマンドが発行され
ているstate=4であるから、ブロック6131が
実行される。ブロック6131では全動作軸のサーボ制
御完了がチェックされる。これも前記した図7の各軸動
作状況エリアを参照することにより判別できる。チェッ
ク結果がyesであれば全動作完了フラグとしてsta
te=0とセットされ、さらに、エリアTに設定されて
いる動作目標位置がエリアNに移され、現在位置情報が
更新される。
【0331】なお、実用の演算処理では、図32の中に
強制減速停止処理部が用意されているが、ここでは説明
は、省略する。
【0332】図32の説明において、ロボットアームを
機械座標系で動作させる場合は、すべての動作制御を自
律的にサーボ処理部が自律的に実行できるので、上記説
明で十分である。しかし、ロボットアームが直交モード
で動作する部分については、サーボ系に逐次継続制御の
データを与えてやらなければならない。図33を用い
て、その方法を示す。
【0333】図33の直交補間部は、図32のブロック
6115において、直交動作が必要であった場合に初期
化される。また、間欠モード下で初期化された場合は、
所定の加速及び減速パターン処理を実行する。連続モー
ドで初期化されたときは所定の加速パターン処理が実行
され、その後は等速モードが継続する。減速処理の指令
は、図30のブロック6033で停止入力があったと
き、ブロック6036の処理の一部として指令される。
【0334】もう一つは図31のブロック6056また
はブロック6060の処理の一部として指令される。こ
の指令の発行状況及び、図33における受け取り及び利
用状況は明示していない。上述の条件処理は、図33の
ブロック6221内に含まれているものとする。
【0335】図33において、ブロック6200におい
て、補間完了か否かがチェックされる。図33の直交補
間部は初期時及び通常時は補間完了の条件に設定されて
いる。前記したように直交補間部が初期化され、以下に
示す処理で補間完了が設定されるまでの間のみ、補間未
完了の状態にある。従ってこの直交補間部も、補間完了
の状態でいくら起動されても何も実行しない。
【0336】前記したように初期されて、起動されたと
きは、図33に明示される動作距離はL=0とされてい
る。ブロック6200のチェックが否であると、ブロッ
ク6210において補間が必要か否かがチェックされ
る。サーボ処理部の継続制御データの受け渡しをコマン
ドを介して行なう場合は、コマンドの動作軸指定部のデ
ータを参照し、軸指定部のデータが空であったとき、補
間必要となり、ブロック6221以下の処理により継続
制御用指令値が求められ、継続制御用サーボ起動時と同
じ方法でデータ設定が行なわれ、サーボ系にひきわたさ
れる。
【0337】前記したように、図13のカウンタ3をイ
ンデックスとしてデータ受渡しを行なう場合には、カウ
ンタ3てインデックスされる継続制御軸指定エリアが空
であるときブロック6221以下の処理により継続制御
用指令値が求められ、カウンタでインデックスされる継
続制御軸指定エリアに軸指定が継続制御動作指令位置エ
リアに指令値が設定され、サーボ系にひき渡されると共
に、次のチェック用に、カウンタ3がサイクリックに+
1されるようになっている。
【0338】補間が必要である場合には、上記説明及び
前述の図22の加減速パターン処理方法によってブロッ
ク6221において、動作距離増分ΔLが求められる。
次にブロック6222にて、動作距離Lが求められる。
次にブロック6223において、求められた動作距離L
と軌道計画された動作距離L0が比較される。
【0339】もし、L≧L0である場合はブロック62
24で動作モードが間欠であるか連続であるかがチェッ
クされ、間欠である場合は、ブロック6225において
補間完了コードが設定されると共に、動作距離Lが軌道
計画値に設定される。連続である場合は、ブロック62
26で次の軌道計画が存在するか否かがチェックされ
る。
【0340】軌道計画の存否は、図30のブロック60
34または図31のブロック6054において、この直
交補間部に報知されてる。もしなければブロック622
8で前記6225と同様の処理を行なう。存在すれば、
ブロック6227でL−L0をLに、すなわち現在の動
作距離の計画値からの超過分を設定し、次の軌道計画を
とり込み、直交補間演算のためのデータを更新し、さら
に、計画値を取り込んだことを前記計画値の準備完了を
報知したブロックにアンサバックする。
【0341】そしてブロック6223の判断のいかんに
関らず、求められた動作距離Lを用いて、ブロック62
29で前記した方法により、その動作距離Lに相当する
位置の直交座標値及び姿勢を求め、更に、ブロック62
30でこれを逆変換して、各軸のエンコーダ値を求め
る。そして得られたエンコーダ値をブロック6331で
サーボ処理部の所定のエリアに設定し、前記した方法
で、サーボ処理部にひきわたす。
【0342】従って、図33の処理がくり返し実行され
ることにより、サーボ処理部に継続動作指令が提供さ
れ、それをサーボ処理部が実行することによりロボット
アームは、所定の直交動作を行なうことになる。
【0343】図33の処理は、前記カウンタ3を利用す
るモードの場合は1回起動されると同じ動作を2回常に
実行するようにしても良い。このようにすると図13の
継続制御軸及び動作指令位置エリアは常に一杯になるよ
うデータが供給されるので、エリアの有効活用と、サー
ボ処理及び直交補間部以外の演算部の演算負荷を軽減す
ることができる。
【0344】図33の直交補間部は以上のように動作す
る。しかし、まだ、サーボ制御部及び軌道計画部との接
続関係が明確にされていない。その方法を以下に示す。
【0345】その1つは次のようである。図33の直交
補間部は、前記したように、サーボ処理部の情報にもと
づきブロック6210を判断することによって実行され
る。従って、図32に示した破線ブロック6125及び
6133を追加することにより、通常の間欠モードの加
減速制御を実行することができる。しかし、連続モード
時においては、図30のブロック6025、6026、
6028の演算処理が膨大であるため、その期間中に継
続動作指令がとぎれる。従って、それを防止するため
に、ブロック6025と6026の間、ブロック602
6と6027の間に、前記図32の処理をそう入し、か
つ、前記したような膨大な演算を実行するブロック60
28の演算を、例えば方向ベクトルを求める演算、頂角
を求める演算、加減速パターンを求める演算に分解し、
その間に前記32図の処理をそう入する。
【0346】このようにした場合、図32の演算は動作
が完了している場合は何も実行しないし、図33の直交
補間部の演算も補間完了モードにあるときは何も実行し
ないので、不必要な演算を実行してロボットアームの動
作制御に悪影響を及ぼすことはない。逆に、動作条件が
設定されているときは、軌道計画演算の合間に、継続制
御のための演算を実行し、サーボ処理部に提供するの
で、ロボットアームの動作制御が予定通り行なわれると
いう効果を奏する。
【0347】これは見方を変えれば、ロボットアームの
動作開始時は、動作コード解読→軌道計画→サーボ指令
→(直交補間部初期化,サーボ起動)のようにトップダ
ウンで動作し、サーボ処理部が起動されたあとは、サー
ボ処理→直交補間→軌道計画→動作コード解読の優先順
位付で演算が実行され、サーボ処理、直交補間の連携に
よりロボットアームが動作している間に、その演算の空
時間を利用して、次にロボットアームを動作させるべき
軌道計画が完成することになる。
【0348】その別の実施例は、次のようである。図3
3の軌道補間部を、最優先のサーボ処理部に次ぐ優先度
を持つ割込処理部として構成し、サーボ処理部が継続動
作指令を、指定された動作軸につきすべて取り込みが完
了したときに、軌道補間部を軌道する割込信号を生成す
るようにする。この信号の流れを第34図に示す。
【0349】このようにすると、サーボ処理部は、定時
割込により自律的に動作する。そして直交補間部の動作
指令信号が必要になると直交補間部の割込起動信号を生
成する。しかし、サーボ処理部は、最優先の割込処理部
であるから、そのすべての演算は、正常に割込まれるこ
となく終了する。
【0350】サーボ処理部が割込起動信号を出力した場
合は、直交補間部は、第2位の優先度を持つ割込みであ
るから、サーボ処理部の演算が終了すると起動され、演
算を開始する。しかし、サーボ処理部が定時割込により
演算を開始すると、直交補間部は割込まれて、演算が中
断するが、サーボ処理部の演算が終了すると再び中断し
た箇所から演算を再開し、所定の演算を終える。すなわ
ち、直交補間部は、定時割込で起動されるサーボ処理部
の演算空時間に処理される。
【0351】さらに、動作コード解読及び軌道計画部、
サーボ指令部は、直交補間部の演算空時間内に処理され
る。このようにして、最優先処理が実行され、その指令
により、次の優先処理が実行され、最後に、最も優先度
の低い軌道計画処理が実行され、しかも先行して軌道計
画をするようになっているので、演算論理が簡単にな
り、第1の実施例のような演算オーバーヘッドのない演
算処理が可能となった。
【0352】なお、上記は再生運転の場合について説明
したがテスト運転の場合にも同様であり、かつ、前記し
たように、位置教示運転の場合についても動作開始のた
めの前処理部が一部相異するのみで軌道計画以降の処理
は同一であることは容易に理解されよう。すなわち、本
発明に係る演算処理は、ロボットアームの全動作制御に
つき共通であり、共通の処理手順により実現されるもの
であることも明白であろう。
【0353】
【発明の効果】以上述べたごとく、本発明によれば、
(i)サーボ系が安定に動作するサンプリングレートT
s msecをロボットアームの動作軸数Nで除した時間Ts
/Nよりも短い定時周期Tsm msecで起動される割込演
算処理部を設け、(ii)起動される毎に循環的にロボッ
トアームの動作軸のうちの1軸のみのサーボ制御を実行
し、N回の起動によりロボットアームの全動作軸の1回
のサーボ制御を完了するようにし、(iii)動作指令部
の発行するロボットアームの機械座標で与えられる動作
指令位置、必要ならYの動作指令点へ動くための動作方
法を規定する定数と動作の実行方法及びロボットアーム
の動作軸を指定するコマンドに応答してロボットアーム
の指定された動作軸のサーボ制御を開始し、(iv)前記
動作制御が完了すると、前記指令位置にロボットアーム
各軸を保持するようにすると共に、(v)座標変換を伴
なうロボットアームの駆動制御時は、サーボ制御を最優
先とし、座標変換を伴なう直交補間演算を次の優先順と
して、ロボットアームの駆動制御を実行し、その演算の
合間を利用して、先行して次の軌道計画演算を実行する
ようにしたので、(a)ロボットアーム及び追加軸の自
由度は、個別でも、協調してでも任意に動作させること
ができ、(b)または、サーボ系に、ロボットアームの
機械座標系レベルでの補間機能を与えたので、例えば、
座標変換を伴なう直交動作の場合においても、サーボ系
にはかなり荒っぽい指令値を与えるだけで良く、主制御
処理部の演算負荷を大幅に低減することができ、ロボッ
トアームを教示点毎に停止させることなく連続して動作
させることができるようになった。
【図面の簡単な説明】
【図1】本発明の全体制御システム構成図。
【図2】本発明の適用されるロボットの一例を表す図で
ある。
【図3】本発明に係る教示手段の一例を表す図。
【図4】本発明の演算処理部の概略構成図。
【図5】本発明のサーボ制御部の全体構成図。
【図6】本発明のサーボ制御部のタイミングチャート。
【図7】本発明のサーボ処理部の概略構成図。
【図8】本発明のサーボ処理部の各処理詳細フローチャ
ート。
【図9】本発明のサーボ処理部の各処理詳細フローチャ
ート。
【図10】本発明のサーボ処理部の各処理詳細フローチ
ャート。
【図11】本発明のサーボ処理部の各処理詳細フローチ
ャート。
【図12】本発明のサーボ処理部の各処理詳細フローチ
ャート。
【図13】本発明のサーボ処理部の各処理詳細フローチ
ャート。
【図14】本発明の軌道計画処理を説明する図。
【図15】本発明の軌道計画処理を説明する図。
【図16】本発明の加減速制御法を説明する図。
【図17】本発明の加減速制御法を説明する図。
【図18】本発明の加減速制御法を説明する図。
【図19】本発明の加減速制御法を説明する図。
【図20】本発明の加減速制御法を説明する図。
【図21】本発明の加減速制御法を説明する図。
【図22】本発明の加減速制御法を説明する図。
【図23】本発明の加減速制御法を説明する図。
【図24】本発明の座標変換を説明する図。
【図25】本発明の座標変換を説明する図。
【図26】本発明の位置教示法を説明する図。
【図27】本発明の位置教示法を説明する図。
【図28】本発明の位置教示法を説明する図。
【図29】本発明の再生運転法を説明する図。
【図30】本発明の再生運転法を説明する図。
【図31】本発明の再生運転法を説明する図。
【図32】本発明の再生運転法を説明する図。
【図33】本発明の再生運転法を説明する図。
【図34】本発明の再生運転法を説明する図。
【符号の説明】
1……制御装置、2……サーボモータ、14……教示手
段、15……演算手段、16……演算手順記憶手段、1
7……動作手順記憶手段、18……位置記憶手段
───────────────────────────────────────────────────── フロントページの続き (72)発明者 篠崎 弘 栃木県下都賀郡大平町大字富田800番地 株式会社 日立製作所 栃木工場内 (72)発明者 久富 良一 栃木県下都賀郡大平町大字富田800番地 株式会社 日立製作所 栃木工場内 (72)発明者 大槻 治明 茨城県土浦市神立町502番地 株式会社 日立製作所 機械研究所内 (56)参考文献 特開 昭58−22687(JP,A)

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の動作軸を持つロボットアームと前記
    ロボットアームの制御装置とを備え、前記制御装置は、
    前記ロボットアームの動作指令を生成する動作指令部
    と、前記動作指令及び前記動作軸からのフィードバック
    信号を用いて動作軸のサーボ制御演算を行うサーボ制御
    部を含む演算手段と、前記サーボ制御部より生成出力さ
    れる動作軸の駆動信号に応答し動作軸を駆動するパワー
    信号発生手段とを備えたロボットにおいて、 前記サーボ制御部を、サーボ系が安定に動作するサンプ
    リングレートTsをロボットアームの動作軸数Nで除し
    た時間Ts/Nよりも短かい一定周期Tsmで起動され
    る割込演算部とし、かつ、起動される毎に循環的にロボ
    ットアームの動作軸のうちの1軸のみのサーボ制御を実
    行し、N回の起動によってロボットアームの全動作軸の
    1回のサーボ制御を完了するようにしたことを特徴とす
    るロボット。
  2. 【請求項2】特許請求の範囲第1項において、前記サー
    ボ制御部は、前記動作指令部の発行するロボットアーム
    の機械座標で与えられる動作指令位置を用い、前記動作
    指令部から与えられるコマンドによって指定されたサー
    ボ制御内容及び動作軸についてサーボ制御を開始し、指
    定された動作軸のサーボ制御が完了すると、ロボットア
    ームを前記動作指令位置に保持するようサーボ制御する
    ことを特徴とするロボット。
  3. 【請求項3】特許請求の範囲第1項において、前記動作
    指令部は、ロボットアームの動作手順を解読し、それに
    もとづき軌道計画し、サーボ制御部に起動指令を生成す
    る軌道計画部と、軌道計画値に従って座標変換を伴なう
    直交補間演算を行ない、ロボットアームの機械座標系で
    表わされるサーボ系の逐次動作指令位置を生成する直交
    補間演算部とを備え、前記直交補間演算部は、サーボ制
    御部に次ぐ優先度の割込処理部であり、サーボ制御部の
    演算要求に応じて補間演算を実行し、前記軌道計画部は
    サーボ制御部及び直交補間演算部の演算の空き時間を利
    用して、実行中のロボットアーム動作制御に先行する次
    の軌道計画を実行するようにしたことを特徴とするロボ
    ット。
JP7023688A 1995-02-13 1995-02-13 ロボット Expired - Fee Related JP2606172B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7023688A JP2606172B2 (ja) 1995-02-13 1995-02-13 ロボット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7023688A JP2606172B2 (ja) 1995-02-13 1995-02-13 ロボット

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP62174701A Division JPH0782372B2 (ja) 1987-07-15 1987-07-15 ロボットア−ムの制御方法

Publications (2)

Publication Number Publication Date
JPH0836411A JPH0836411A (ja) 1996-02-06
JP2606172B2 true JP2606172B2 (ja) 1997-04-30

Family

ID=12117384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7023688A Expired - Fee Related JP2606172B2 (ja) 1995-02-13 1995-02-13 ロボット

Country Status (1)

Country Link
JP (1) JP2606172B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5771386B2 (ja) * 2010-11-25 2015-08-26 株式会社ディスコ 加工装置
JP2018031443A (ja) * 2016-08-25 2018-03-01 クノールブレムゼ商用車システムジャパン株式会社 クラッチ制御装置及びクラッチ制御方法

Also Published As

Publication number Publication date
JPH0836411A (ja) 1996-02-06

Similar Documents

Publication Publication Date Title
US4528632A (en) Industrial articulated robot linear interpolation control device
US4433382A (en) Apparatus for automatically adjusting the programmed location of a robot arm
Kröger Opening the door to new sensor-based robot applications—The Reflexxes Motion Libraries
Lloyd et al. Extending the RCCL programming environment to multiple robots and processors
JPH02160487A (ja) ロボット手動送り補正方式
US4685067A (en) Control system for program controlled manipulator having multiple triggered functions between programmed points
EP0465661B1 (en) Method and apparatus for controlling an articulated robot having redundancy
EP0619536A1 (en) Method and apparatus for numerically controlling industrial machine
US4677276A (en) Method of welding robot control which controls the three basic axes of a robot to provide a repetition of a weaving pattern along a robot locus
Hayward et al. Introduction to RCCL: A robot control &C& library
JP2606172B2 (ja) ロボット
JPH0782372B2 (ja) ロボットア−ムの制御方法
EP0227304A2 (en) Method of controlling a robot
EP0483756B1 (en) Robot controlling method and apparatus
JP3346847B2 (ja) 子局同時起動方法
JPH07104706B2 (ja) ロボットの制御方法
JP3051387B1 (ja) ロボットのプログラム変換装置
Bejczy et al. A synchronized computational architecture for generalized bilateral control of robot arms
JPH0619657B2 (ja) ロボツトの制御方法および装置
JPH07111647B2 (ja) ロボットアームの制御方法
KR100504636B1 (ko) 서보제어시스템 및 그의 제어방법
JPH09305213A (ja) ロボット制御装置
JP2787207B2 (ja) 多軸位置サーボ装置
Kirćanski et al. Multiprocessor control system for industrial robots
JPS60220408A (ja) 関節形ロボツト用制御装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees