JPH0782372B2 - ロボットア−ムの制御方法 - Google Patents

ロボットア−ムの制御方法

Info

Publication number
JPH0782372B2
JPH0782372B2 JP62174701A JP17470187A JPH0782372B2 JP H0782372 B2 JPH0782372 B2 JP H0782372B2 JP 62174701 A JP62174701 A JP 62174701A JP 17470187 A JP17470187 A JP 17470187A JP H0782372 B2 JPH0782372 B2 JP H0782372B2
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
JP62174701A
Other languages
English (en)
Other versions
JPS6419409A (en
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 JP62174701A priority Critical patent/JPH0782372B2/ja
Publication of JPS6419409A publication Critical patent/JPS6419409A/ja
Publication of JPH0782372B2 publication Critical patent/JPH0782372B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ロボットアームの動作制御のための演算処理
方式に係り、特に演算能力の十分でない演算手段を用い
てロボットアームの動作制御をするに好適な演算処理方
式に関する。
〔従来の技術〕
ロボットアームの制御には、主としてマイクロコンピュ
ータのような、演算能力の十分でない演算手段が用いら
れる。この際の演算処理内容は、次のように大別するこ
とができる。
(1)予かじめ与えられているロボットアームの動作プ
ログラムを順次呼び出し、解析処理するシーケンス処
理。
(2)シーケンス処理の結果、動作指令が見出だされた
ときに、動作命令により規定される動作条件、及び動作
点データをもとに、ロボットアームの動作仕様を決定す
る軌道計画処理。
(3)軌道計画に基づきロボットアームの動作点を補間
演算により求め、移動位置指令値であるサーボ制御用の
入力信号に変換する補間演算処理。
(4)サーボ制御用の入力信号とロボットアームを駆動
するアクチュエータからフィールドバックされる信号と
にもとづき所定のサーボ制御演算を行ない、前記アクチ
ュエータを駆動する制御信号を生成出力するサーボ制御
演算処理。
初期のロボットアームの制御においては、上記(4)
は、サーボ制御用のアナログの外部回路として構成され
ていた。従ってロボットアームを滑らかに連続して動作
させるために、一定のサンプリングレート、特に演算手
段がコンピュータであり逐次演算により上記(1)〜
(3)を実行するようなものにおいては、コンピュータ
の割込機能を用いて、定時的に割込を発生させ、上記
(1)〜(3)で得られた移動位置指令値をアナログの
外部回路に与えていた。(特公昭61−2964) 上記外部回路は、当然ながら一定の遅れ要素を含んでお
り、従って、外部回路への上記移動位置指令値の提供
は、それ程短周期である必要がなかった。例えば50msec
に1回程度の割分で良かった。また、前記定時割込処理
部は、上記位置指令値を外部回路に出力するのみであ
り、演算所要時間は、無視できる程度であった。従って
コンピュータ等の演算手段は、ほとんど、上記(1)〜
(3)の演算処理に専念でき、その演算所要時間は例え
ば30msec程度であり、ロボットの動作制御上、問題にな
らなかった。
その後、計算機技術の進歩、特にマイクロコンピュータ
技術の進歩により、前記外部回路を、演算手段の演算処
理に置換する、すなわち、ソフトウェアサーボ化が可能
な状勢が生まれてきた。このように、外部回路をソフト
ウェアで置換し、ソフトウェアでアクチュエータの駆動
信号を直接生成し、アクチュエータを動作させるように
なると、前記外部回路における遅れ要素がなくなるか
ら、アクチュエータ系の安定か円滑な動作制御のため
に、前記(4)の演算は高周期、例えば定時的にZmsec
毎の定時的演算で実行しなければならなくなる。これ
は、アクチュエータからのフィードバックループを含む
マイナで高速の制御ループをソフトウェアに置換する場
合の当然の帰結であり、サンプリング制御理論からも明
らかである。
このようにして、従来外部回路で実行させていた制御理
論を演算手段内部にとり込み、理論演算で実行するソフ
トウェアサーボ方式とする場合、定時処理であるサーボ
制御のサンプリングレートの高周期化と共に、サーボ制
御演算負荷が増大するために、前記した(1)〜(3)
の演算をサーボ処理周期に同期させて実行することはほ
とんど不可能になる。
このような難点を回避するものの一例として、特開昭58
−58610に開示された方法がある。そこでは、定時処理
であるサーボ制御演算の空時間を利用して、前記(1)
〜(3)の演算を実行し、得られた位置指令値をN分割
してバッファに設定し、これを定時処理であるサーボ制
御演算部がサーボ制御の指令値として順次読み出しこれ
を用いてサーボ制御を実行しているので、実質上の前記
(1)〜(3)の演算量が減少することになる。
〔発明が解決しようとする問題点〕
上記公知例では、サーボ制御演算は定時処理であり、ロ
ボットアームはバッファに指令される位置指令値に応答
して動作する。このとき、ロボットアームの全動作軸
(全自由度)は、前記位置指令値により、常に協調して
動作するようになっている。従って、ロボットアームの
一部の自由度のみを単独で動作させたい場合や、自由度
の一部ごとを単独で動作させたい場合に対処することが
困難である。
さらに、ロボットアームの全動作軸(全自由度)は、定
時処理として他の処理中にも割込み起動される一つのサ
ーボ制御プログラムで同時に処理されていることから、
制御上の柔軟性にかけていた。
本発明の目的は、上述の事情に鑑み、ロボットアームに
構成された複数の動作軸(自由度)をそれぞれ単独に動
作させること可能にし、制御上柔軟性の高いロボットア
ームの制御方法を提供することにある。
〔問題点を解決するための手段〕
上記目的を達成するために、本発明のロボットアームの
制御方法は、ロボットアームの動作指令を生成する動作
指令部及び前記動作指令に応答し駆動信号を生成出力す
るサーボ制御部を含む演算手段と、前記駆動信号に基づ
いてロボットアームの動作軸を駆動するパワー信号発生
手段とを備え、前記ロボットアームに設けられた複数の
動作軸を駆動制御するロボットアームの制御方法におい
て、サーボ系のサンプリングレートTsを前記動作軸の数
Nで除した時間Ts/Nよりも短い一定周期Tsm毎に前記サ
ーボ制御部を起動して1軸のみのサーボ制御を割込み処
理し、N回の起動によって循環的に前動作軸のサーボ制
御を完了するようにしたものである。
上記のサーボ制御部の機能は、マイクロコンピュータ等
の演算手段と、そこでの処理手順を記述したサーボ制御
プログラムによって実現することができる。このとき、
サーボ制御プログラムには、複数の処理モードを設け、
動作させる動作軸(自由度)についての位置(関節角/
エンコーダ値)指令値、補間演算のパラメータを指定し
た後、動作させる動作軸(自由度)及び動作方法を指定
するコマンドを与えるようにしてもよい。
また、サーボ制御プログラムは、前記コマンドに指定さ
れた動作を完了した後、コマンドの実行完了信号を主制
御処理部に返し、自動的に位置指令値の位置を保持する
ようにしてもよい。
さらに、前記(1)〜(3)で構成される主制御処理部
は、定時処理であるサーボ制御プログラムの実行空き時
間に実行されるが、その処理手順を、ロボットアームの
動作を開始するときは、(1)→(2)→(3)の順に
演算を実行し、サーボ制御部に必要なパラメータ及び動
作コマンドを送って動作を開始させ、動作開始後は、サ
ーボ制御部からの要求により、必要に応じて(3)→
(2)→(1)の順に優先順位が低くなるように演算を
実行するようにしてもよい。このとき、(2)の演算は
先行して行われるようにしておく。
〔作用〕
サーボ制御プログラムは、サーボ制御系が安定に動作す
るサンプリングタイムTsをロボットアームの動作軸(自
由度)Nで除した時間Ts/Nよりも短い周期Tsmで、前記
(1)〜(3)の処理に優先して起動され、起動される
毎に、1個の動作軸(自由度)についてサーボ制御演算
を行う。そして、サーボ制御部またはサーボ制御部の機
能を果たすサーボ制御プログラムは、この演算結果とし
て1個の動作軸(自由度)についての駆動信号を出力
し、パワー信号発生手段がこの駆動信号に応答して1個
の動作軸(自由度)のアクチュエータを駆動する。これ
によって、ロボットアームに構成された複数の動作軸
(自由度)をそれぞれ単独に動作させることができる。
さらに、コマンドによって動作させる動作軸(自由度)
及び動作方法を指定するようにすることによって、動作
させたい動作軸(自由度)を動作させたい方法で動作さ
せることができる。
さらに、先行して軌道計画処理を進めるようにし、動作
中は(軌道計画処理)→(補間演算処理)→(サーボ制
御演算処理)の順に優先順位を高くして処理するように
しておけば、各軸の独立性をさらに高めることができ
る。
〔実施例〕
以下、本発明を実施例により詳細に説明する。
第1図に、本発明を実現するロボットシステムの一構成
例を示す。なお、第1図では、追加軸については記載し
ていない。ロボットシステムは、ロボット本体2と制御
装置1より構成される。制御装置1は、ロボットを手動
で動作させたり、動作した位置を位置記憶手段18に記憶
指令をしたり、ロボットの動作手順を入力し、動作手段
記憶手段17に指令をしたり、動作手順記憶手段17に記憶
された動作手順に従ってロボットに動作するよう指令し
たりするための複数の操作スイッチ及び動作状況他を表
示するための表示装置類を含む教示手段14と、演算手段
15の出力するPWM指令を受けてPWM信号を発生するPWM信
号発生回路11、そのPWM信号によって動作し、ロボット
本体2、特にサーボモータに運転電流を供給するパワー
回路12と、サーボモータの回転位置を測定するためにサ
ーボモータに取りつけられたエンコーダのエンコーダパ
ルスを計数するパルスカウンタ13と、複数のロボットア
ーム先端部の経由する位置を記憶する位置記憶手段18
と、前記位置記憶手段18に記憶された複数の位置の動作
手順を記憶する動作手順記憶手段17と、演算手段15の演
算手順と記憶する演算手順記憶手段16と、教示手段14の
入力信号に応じて定められた演算手順記憶手段16内に格
納されている適切な演算手順を読み出し、必要に応じて
動作手順記憶手段17及び位置記憶手段に格納されている
情報を用いて演算を行ないロボットを動作制御する演算
手段15より成っている。
なおPWM信号発生回路11、パワー回路12、サーボモータ
2、パルスカウンタ13は第1図に示すような接続関係
で、ロボットの動作自由度の数だけ設けられるが、第1
図では1組しか示していない。
また、第1図には示していないが、外部装置とのデータ
送受をするためのI/Oインターフェイス、上位装置との
通信のための通信インターフェイスも設けられる。
第2図に、本発明の説明のために利用するロボットアー
ムの一例を示す。第2図のロボットアームは、周知の永
年多関節形ロボットであり、図示の如く、3個の回転の
自由度及び1ヶの直線運動の自由度を持っている。
本発明は、特定の機構に限定されるものではなく、応用
対象は、垂直多関節形ロボットでも、直交動作形ロボッ
トでも良いことはもちろんである。
第3図に、教示手段14の操作スイッチ及び表示装置の例
を示す。詳細な説明は省き、以下の実施例の説明の項で
必要に応じて参照することにする。
先ず、第4図を用いて、演算手段15の構成について説明
する。第4図は、演算手段の最小機能機成を示したもの
である。電源入の初期設定が終ると、演算手段15は、動
作モード釦取り込み部20において、動作モード釦(第3
図の位置ティーチ、プログラムティー4、原点合せ、テ
スト運転、連続運転釦)の入力を待っている。いずれか
の釦が押されると、それに応じてブロック21〜25、すな
わち、原合合せ、動作教示、‥‥再生動作の各処理部
(主制御処理部)のいずれかを実行する。動作教示処理
部22の場合を除き、他の場合はすべてロボットの動作制
御に関係するものであり、これらの下位に、これらの指
示に従ってロボットアームの動作制御を実行するサーボ
制御部30が位置している。
次に第5図〜第13図を用いて、本発明の主要部であるサ
ーボ処理部について説明する。
第5図においては、共通メモリ上にループカウンタ34が
準備される。このループカウンタは、定時割込によりサ
ーボ主制御30が起動される毎にブロック33において、常
に1ずつ増加されている。これは制御軸数以下の値をサ
イクリックにとるよう動作する。従って例えば、ロボッ
トアームの動作自由度が4である場合、ループカウンタ
の下位2ビットは、0→1→2→3→0のように順次変
化するから、これに動作軸1〜4を対応させれば、上の
理論により、制御すべき軸を決定することができるか
ら、決定された制御軸のサーボ制御の準備ができる。こ
れはブロック31の作用である。ここでサーボ制御の準備
とは、実際上の各軸のサーボ制御アルゴリズムは、余程
特殊な場合を除き同一であるから、各軸毎の参照したり
記憶したりするデータエリア、入出力エリアのアドレッ
シング方式を制御軸に対して設定することに相当する。
これにより、ブロック32において動作させるべき制御軸
についてサーボ制御を実行する。ブロック33は前述の通
りである。ここでブロック31と32は順次実行されねばな
らないが、ブロック33の実行はどの位置にあっても別に
演算上及び制御上の問題はない。以下の種々の説明にお
いても、この演算順序に依存しないものも出てくるが、
その指摘は省略する。要は、演算順序に依存せず、同一
の結果を与えるものは、同一であるとみなしうるはずで
ある。
以上により、サーボ主制御部30は、定時割込により起動
される毎に、ある1つの制御軸のサーボ制御演算を実行
し、起動毎に制御軸を順次切り換えていって複数回の起
動により、全動作軸の1回のサーボ制御を実行する形式
となっている。
なお、第5図には記載していないが、このサーボ主制御
部で、前記第3図で示した教示手段14の操作釦の取り込
み、表示データの送出、並びに周辺装置との入出力信号
の取り込みまたは出力、さらには、定時性を利用したタ
イマ処理等も行なうようになっている。これらも、サー
ボ制御部の演算負荷となるので、種々の負荷低減策がと
りいれられているが、ここでは詳述しない。
第6図は、第5図のサーボ処理部の動作タイミング図で
ある。定時間Tsm毎に起動され、順次第1軸、第2軸、
第3軸、第4軸の制御を実行し、次にはまた第1軸から
繰り返す。
■の部分が、サーボ制御に専有される時間であり、残り
の□の部分で主制御処理、すなわち、第4図のブロック
20〜25が実行される。ここで、制御軸数*Tsm<Tsとな
るようにTsmを決定しているので、サーボ系は安定に動
作し、発振を起すこともない。
次に、第7図を用いて、第5図のブロック32で示される
各軸毎のサーボ制御処理について説明する。ここで、動
作軸は第n軸とする。第n軸をサーボ制御する際には、
第7図に示すような共通メモリ及び第n軸用メモリを使
用する。まず、ブロック100において、第1図に示すパ
ルスカウンタ13より、第n軸のカウンタ値を取り込む。
次にブロック101において、第n軸用メモリの前回取り
込んだカウンタ値との差をとり、速度を計算し、これ
を、第n軸用メモリの前回の現在値に加えて、今回の現
在値として記憶する。また、取り込んだカウンタ値は、
第n軸用メモリに記憶する。ここで、速度はメモリには
記憶するようにしていないが、このサーボ制御の実行完
了までは特定のワークレジスタ中に保存してある。次に
ブロック102において、主制御プログラムより設定され
る共通メモリ内のコマンドの有無を調べる。
ここで、共通メモリ内のコマンドは、次のような形式で
ある。
すなわち、コマンドデータは、サーボ制御すべき内容を
指定する。軸指定部は、その指定ビットに対して、コマ
ンドデータの指定するサーボ制御の実行を要求してい
る。従って、ブロック102において第n軸の指定をチェ
ックする。第n軸の指定があれば、ブロック103を実行
する。その実行後もしくは第n軸指定がなければ、ブロ
ック104以下を実行する。第n軸の指定があった場合
は、ブロック103の第n軸コマンド受付処理を実行す
る。すなわち、まず、コマンド受付完了を主制御処理に
報知するために、軸指定を消去する。次にコマンド実行
中であることを示すために、共通メモリの各軸動作状況
部に、前記コマンドの軸指定と同様の形式で、第n軸ビ
ットを設定する。次に、コマンドデータを第n軸メモリ
のサブコマンドエリアへ移す。次に、主制御の指令する
第n軸用メモリ内の動作指令位置をサーボ制御の最終目
標位置としてとり込む。すなわち、サーボ目標位置→前
回サーボ目標位置動作指令位置→サーボ目標位置のよう
にメモリを書き換える。更に、ここでは、詳述しない
が、指定されたコマンド特有の準備処理を行なう。この
ようにして、ロボットアームの動作制御を各軸単独の動
作制御に置換する。
ブロック104では、第n軸メモリ内のサブコマンドを分
析して、サブコマンドで指定されるサーボ制御処理を実
行して、第n軸モータの駆動信号を生成する。これはブ
ロック105において第n軸モータの駆動信号として、第
1図に示す第n軸用PWM信号発生回路11に出力され、第
n軸のサーボモータが駆動制御される。
上記サーボ制御演算部および、もしくは、駆動信号出力
部においては、動作制御の安全のために、位置偏差の大
小、速度の大小、加速度の大小、駆動信号の大小、動作
位置の正当性などのチェックがなされ、異常時には、対
応する位置または表示出力処理を行なうが、ここでは詳
述しない。
また、上記説明では、コマンドは、共通メモリ内に配置
され、コマンドデータと軸指定データとが対になって与
えられるとしているが、各軸毎のメモリ内に配置され、
コマンドデータのみ与えられるようにしても良い。この
場合は、コマンドがサーボ系に取り込まれた、もしく
は、受けつけを示すために指定されたコマンドデータを
クリアするもしくは、コマンド発行側の認知しうる別デ
ータを設定するような処理が必要である。
ここで、コマンドもしくはサブコマンドとして指定され
るサーボ制御内容には、例えば次のようなものがある。
(i)原点合せのための (a)原点領域から脱出する制御 (b)原点領域を探す制御 (c)エンコーダのZ相を探す制御 (ii)加減速制御 (iii)強制減速制御 (iv)1ステップ送り制御 (v)継続制御 (vi)位置保持制御 (vii)非常停止制御 以下、第7図のブロック104で実行されるサブコマンド
処理のうち、主なものについて詳述する。
第8図は、位置保持制御を説明するブロック図である。
ここで、位置偏差eは、例えば、 e=サーボ目標位置−現在位置 である。ブロック110で、|e|が所定値以内か否かがチェ
ックされる。所定値以内であれば、ブロック111で第7
図の共通メモリ部の各軸動作状況エリアに設定した第n
軸を消去し、第n軸の位置保持完了を主制御部へ報告す
る。実際上はブロック110の判断は、前記判断結果が所
定回数以上連続するか否かなど、より安全のための処理
が含まれている。
次にブロック112で例えば次式で示す、位置保持制御演
算 PWM=KIe+ΣKSe KI:比例ゲイン KS:積分ゲイン が実行され、モータ駆動信号PWMが求められる。
この位置保持制御は、他の動作モードのロボットアーム
のサーボ制御が完了したときに常に最終サブコマンドと
して設定され、次の動作コマンドが指定されるまで位置
保持動作を行なう。従って、主制御部は、次の動作を指
令するときはロボットアームの動作の終了を待って次の
コマンドを発行すれば良く、また、次の動作を指令する
指令がないときは、何もしなくて良いので、主制御演算
負荷低減及び演算論理の簡略化が得られる。
第9図は、1ステップ送り制御を説明するブロック図で
ある。ブロック120では第n軸のサブコマンドを位置保
持コマンドに変更する。これにより、第n軸のサーボ制
御が次回以降起動されると、位置保持制御が実行される
ことになる。ブロック121は第8図の対応ブロック111と
同様の処理である。これにより、1step送り動作は即時
に完了することになる。ブロック122も第8図のブロッ
ク112と同様の処理である。1ステップ送りは、位置教
示の際に微妙な位置決め点にロボットアームを誘導する
のに有用である。動作は即時に完了するので、連続くり
返し1ステップ送りが可能である。
第10図は、現在位置よりサーボ目標位置まで、第n軸を
所定の加減速パターンに従って加速→等速→減速によっ
て動作させる場合のブロック図である。ブロック130に
おいて、第n軸位置偏差 e=第nサーボ目標位置−第n軸現在位置につき、|e|
<所定値を調べる。
所定値以内であれば、サーボ目標位置に到達しているか
らブロック131において、位置保持コマンドを第n軸の
サブコマンドに設定する。そして、ブロック132で前述
の位置保持制御を実行する。これにより次回以降第n軸
のサーボ制御が起動されたときは、位置保持モードで動
作する。
所定値以上であれば、加減速制御を実行する。すなわ
ち、ブロック133において、所定の方法で加減速テーブ
ルを検索して、動作速度指令を求める。テーブル検索法
(第22図)については後で詳述する。次に、ブロック13
4において、速度サーボ処理を実行し、第n軸のモータ
駆動信号を求める。
すなわち、例えば、 PWM=KIV(VD−V)+ΣKSV(VD−V) KIV:比例ゲイン KSV:積分ゲイン VD:速度指令 V:速度 によって、モータ駆動信号を求める。
第11図は、現在動作中のロボットアームを強制減速させ
停止させる場合のブロック図である。これは、位置ティ
ーチ及びテステ運転時に有用である。
ブロック140において、減速テーブルの検索が終端に達
したかどうかを調べる。
達していればブロック141で位置保持コマンドを第n軸
のサブコマンドに設定し、次回以降の動作モードを変更
する。次にブロック142において、第n軸の現在位置、
すなわち減速終了点位置を第n軸のサーボ目標位置に設
定し、ブロック143で位置保持制御を実行する。これに
より、第n軸は、減速終了点に位置決めされる。
減速テーブルの終端点に達していなければ、ブロック14
4で1ステップより減速側の減速テーブル値をとり出
し、動作速度指令に変換し、ブロック145において前述
の速度サーボ処理を実行する。これにより第n軸は所定
の減速パターンに従って減速してゆく。
次に、継続制御について説明する。継続制御は複数の教
示点間を停止することなく連続して動作させる場合と
か、ロボットの動作関節角とは非線形の関係にある座標
系、例えば直交座標系でロボットアームを曲線または直
線経路に沿って動作させる場合に、ロボットアームの動
作経路を逐一動作指令位置として指定し、追値制御の形
式でロボットアームを動作させるコマンド方式である。
ここで、もし、主制御処理部が、遅滞なく、動作経路順
に動作指定位置をサーボ系に与えることができるなら
ば、継続処理は、前記した1ステップ送り制御もしくは
その変形した方式で実行することができる。しかし、サ
ーボ制御処理は、最も優先度の高い定時割込処理であ
り、主制御処理部とは非同期で動作しているから、デー
タの授受について完全に1:1の同期をとることは難かし
い。
また、実際のアームの動作状況及び動作経路をみると、
サーボ系の動動周期で動作指令を与える必要はないこと
がわかる。すなわち、動作指令をサーボ系内で何分割か
して、その補間値をサーボ指令として動作させた方が、
主制御処理部の演算負荷低減の面でも、サーボ処理部と
の同期の面でも好都合である。
第12図は、上記思想にもとづく継続制御のブロック図で
ある。第12図のブロック図の場合、第7図のブロック10
3において説明したコマンド受付処理を少し変更する要
がある。第12図(a)は、そのコマンド受付処理を示し
たものである。第12図(a)において、ブロック150に
おいて、共通メモリエリアのコマンドに指示されたコマ
ンドデータと第n軸のサブコマンドのデータを比較す
る。両者が不一致である場合は、継続制御の開始が指令
されたものとして、ブロック151及び152を実行する。す
なわち、ブロック151では、コマンドされたコマンドデ
ータを第n軸サブコマンドエリアへ取り込む。さらに、
ブロック152において、第7図の第n軸用メモリ内に設
けられた(図示しない)カウンタエリアをクリアする。
これは、後述の補間演算の初期化に相当する。両者が一
致する場合は何もしない。このようにして、継続制御の
初期化が行なわれたのちの実際の継続処理は、第12図
(b)で実行される。
第12図(b)において、ブロック153で、第n軸カウン
タ値の値がテストされる。カウンタ値が0の場合は、ま
だ、コマンドで指定された動作指令位置をとり込んでい
ないので、そのとり込みのための処理を行なう。そこ
で、ブロック154においてコマンドに第n軸の指定があ
るかどうかを調べる。もし指定があれば、ブロック155
において、 第n軸サーボ目標位置→第n軸前回目標位置 第n軸動作指令位置→第n軸サーボ目標位置 のようにデータを転送して、第n軸サーボ動作指令位置
をとり込み、ブロック156において、コマンドの第n軸
の動作指定を消去する。これにより、主制御処理部は、
第n軸の動作指令位置を再び指定することができる。以
上の取り込みが終ると、共通処理であるブロック160〜1
64を実行する。
ブロック154において第n軸の動作指定がなければ、継
続制御は、終了したものとみなしてブロック158におい
て、位置保持コマンドを第n軸のサブコマンドに設定
し、ブロック159において、前記した第8図の位置保持
制御を実行する。ブロック158の作用により、これ以降
は、ロボットアームの第n軸は位置保持制御される。
ブロック153のテストの結果、第n軸のカウンタ値が0
でない場合は、ブロック160〜164を実行する。ブロック
160においては、例えば下記の補間演算により(カウン
タ値+1)*(サーボ目標位置−前回サーボ目標位置)
/N+前回サーボ目標位置→今回サーボ目標位置 今実行すべきサーボ制御の目標位置を求め、ブロック16
1において、位置偏差eを求める。
今回サーボ目標位置−現在位置→位置偏差e 次に、ブロック162においてカウンタ値をサイクリック
にカウントアップして、次の補間数値を定める。すなわ
ち、補間分割数がNであるとき、 カウンタ値=Nであるならば、0→カウンタのように再
設定する。これにより、補間の継続と次の第n軸動作指
令位置のとり込み処理の実行が保証される。ここで、補
間分割数Nが2mである場合は、上記リミッタ処理は不要
であり、カウンタの下位mビットを用いて、上記説明方
法が実行できることはいうまでもない。
次に、ブロック163において、第n軸の動作中を示す信
号を共通メモリの各軸動作状況エリアへ設定する。これ
は、この実施例では、継続制御を位置保持モードで実行
しているから、前記したようにそこで、第n軸の動作完
了信号が、各軸動作状況エリアへ設定されるのを防ぐた
めである。
最後に、ブロック161で求めた位置偏差eを用いて、前
記した第8図の位置保持制御を実行する。
上述の例では、補間演算を乗除算で実行する例を示して
いるが、演算時間面を考慮すれば、別にワークエリアを
設けて加算で実行した方がベターである。そのための方
法は簡単であるのでここでは省略する。
要は、第12図において、次々と指令される第n軸の動作
指令位置をとり込み、それを1次補間してサーボ制御
し、ロボットアームの第n軸を継続動作させ、動作指令
なくなれば最後の動作指令位置でロボットアームの第n
軸を位置保持するようにサーボ系は作用する。
第12図の例では、動作位置指令を次々と指定するために
は、同時にコマンドも指令しなければならなかった。
第13図では別の例を示す。第13図では、共通メモリ内に
複数の継続制御のための動作軸指定エリアと各軸用のメ
モリ内に同じ大きさの継続制御のための動作指令位置エ
リアを設け、これらを、各軸用メモリ内のカウンタ2を
用いて循環的に順次参照してゆく構成としている。
各軸用メモリ内のカウンタ1は、第12図の場合と同じ働
きをする。
第13図(a)は、継続制御の受付処理部であり、ブロッ
ク170でコマンドを受けつけ、ブロック171で継続制御実
行のための初期化を行なっている。この場合は、継続制
御開始時に1回継続制御のコマンドを主制御処理が発行
すれば良いので、ブロック172において、コマンドの第
n軸の軸指定を消去する。
第13図(b)は、第12図(b)と大略同様であり、次の
点が相違する。ブロック174で参照する軸指定は、カウ
ンタ2でインデックスされる共通メモリ内の継続制御の
ための軸指定である。ブロック175で取り込む動作指令
位置は、カウンタ2でインデックスされる第n軸メモリ
内の継続制御のための動作指令位置である。ブロック17
6も同様の変更である。ここではブロック177で、インデ
ックスをサイクリックに更新する処理が追加されてい
る。このカウンタ2の値は、前記した追加エリアの大き
さ内でのカウンタ値を示し、エリアをこの値を用いて参
照するようになっている。
このようにして、循環的に参照し、取り込みが完了する
と軸指定を消去するようにしているので主制御処理部
は、この軸指定が消去されたエリアのデータは取り込ま
れたことがわかるので、最初は順次全エリアに軸指定と
動作指令位置を書き込み、その後は軸指定を参照しなが
ら順次データの設定を行なってゆけば良いことになる。
そのためには、併示したカウンタ3を用いれば良い。ま
たこの軸指定の参照は各軸毎に部分的に行なっても、全
体軸として行なっても良いことはもちろんであり、それ
は、コマンドの軸指定及び各軸動作状況についても同様
のことが云える。
以上述べた、定時割込により起動されるサーボ制御部に
ついてまとめると次のようになる。
サーボ制御部は定時割込により起動されたとき、ロボッ
トアームの動作自由度のうちの1ヶのみについてのサー
ボ制御演算を行ない、循環的にサーボ制御演算を実行す
る動作自由度をきりかえてゆくよう動作すると共に、ロ
ボットアームの関節角またはそれに相当する量で指定さ
れる動作目標位置へ到達する方法及び動作軸を示すコマ
ンドにより、各動作軸を個別または協調して動作制御す
る。また、コマンドによって種々の動作方法、補間方法
または、継続動作等を自由に指定することができ、従来
のようにサーボ制御部が起動されるとすべての動作自由
度が指定された目標位置に追随するよう動作し、目標と
する動作を実現するために常にサーボ制御部に動作目標
値を指定する必要のない、自律的サーボ系を構成してい
るので、主制御部の演算負荷の低減のみならず、論理演
算量をも低減する多大の効果を奏する。
次に、主制御処理部の処理方式を説明するに先立って、
その演算内容、特に数値処理内容について説明する。
まず、第14図に示すような2点間を直線で動作させる場
合の関係式は、次のようである。
方向ベクトルei=(Pi+1−Pi)/Li (2) これより、直線上の中間点までの動作距離をlとする
と、中間点の位置Pは、 P=Pi+l・ei (0≦l≦Li) (3) となる。
次に、第15図に示すような3点で決定される円弧上を動
作させる場合の関係式は、次のようである。
直線Pi→Pi+1,Pi+1→Pi+2の関係式は、前記と同様であ
る。
Li=|Pi+1−Pi| (4) ei=(Pi+1−Pi)/Li (5) Li+1=|Pi+2−Pi+1| (6) ei+1=(Pi+2−Pi+1)/Li+1 (7) これより、3角形の頂角θは cosθ=−ei・ei+1 (8) である。方向ベクトルeiに垂直で円の中心に向かう方向
ベクトルは、 β=(ei+1+cosθ・ei)/sinθ (9) である。円の半径をγとしたとき、第15図を参照して、
次の関係があるから、 これを用いて、 より、円の半径γが求められる。
但し、 従って、点Piより円の中心へ向かうベクトルOが以
下のように求められる。
長さγでベクトル に直交し、ロボットアームの動作方向へ向かうベクトル
γβは、次のように求められる。
γcosθ≦γcos(θ+θ)のとき γβ=[γ2e1−(γcosθ)γβ]/γsinθ
(15) γcosθ>γcos(θ+θ)のとき γβ=−[γ2e2+(γcos(θ+θ))・γβ
/γsin(θ+θ) (16) 但し γcos(θ+θ)=Licosθ−Li+1/2 (17) である。
また、ロボットアームの円弧上の全動作距離L0は、 L0=γ(2π−2θ) (円弧のとき) (19) =2πγ (全円のとき) である。
これより、全弧上の中間点Pの点Piからの動作距離をl
とすると、中間点Pの座標値は、次式で与えられる。
P=Pi+(1+cosα)・γβ+sinα・γβ(20) 但し、 α=l/γ (0≦l≦L0) である。
以上は、位置のみについて言及した。しかし、ロボット
アームの動作制御の場合には、手先の姿勢も同期して制
御されねばならない。
第2図に示すロボットアームの例では、動作始点(XS
YS,ZS,▲θS 124▼)と動作終点(XE,YE,2E,▲θE
124▼)との間を直線または曲線補間する場合、位置成
分と回転角成分が混在し、動作制御(補間演算)の優先
順位決定が難しい。そこで、グリップ回転角速度の設計
仕様をみたすような仮想グリップ長さを導入する。これ
により、グリップ回転角 ▲θE 124▼−▲θS 124▼を長さに変換する定数Kl及び逆
に長さを角度KOに変換する定数を定めることができ、次
式の補間演算の基礎数値を得る。
Lmax={L0,Kl|▲θE 124▼−▲θS 124▼|} これより、補間演算においては、 θ124=▲θS 124▼+l′K′(0≦l′≦Lmax)に
より中間角度を得ることができる。
中間点の位置については、 を用いて、前記式により中間点の位置を得ることができ
る。L0/Lmaxは後述の長さの縮少率に相当する。
次に、直線または円弧上をロボットアームが動作すると
き、ロボットアームを適当な加減速パターンに従って動
作させるための加減速パターン処理方式について説明す
る。これに関し従来用いられている方法は、台形の速度
パターンとする方法(特開昭61−193204)、速度テーブ
ル及び距離テーブルを用意し、それを検索することによ
り加減速を含む動作速度を決定する方法(特開昭59−83
210)、函数演算を利用する方法(特開昭61−5311)な
どが提案されているが、実用性またはシステム仕様の変
更に対し柔軟性を欠くものが多く、ティーチングによっ
て多様な動きをするロボットアームに適用するには問題
が多かった。
ここでは、より一般的で汎用性があり、かつロボットア
ームの多様な動作条件にも自由に適合できる加減速処理
方式を提供する。
第16図に、本発明にかかる加速パターンの一例を示す。
第16図において、横軸はテーブルアドレスであり、縦軸
は、無次元速度を表わす。第16図は、具体的には、第17
図に示す加速及び減速用のテーブルで構成されている。
第17図において、加速及び減速テーブルのパターンは任
意のもので良く、ロボットアームの加減速制御に最適な
ものを設計者が設定することができる。また加速と減速
テーブルの大きさも異なっていても良い。両者を組み合
せて使用するときの最大の無次元速度が、使用時に同一
または略同一で、両者を切り換えたときに、速度ギャッ
プが生じないようになっていれば良い。また、加速時と
減速時で同一パターンを利用する場合には、加速テーブ
ルのみ設けて、減速時にも共用するようにすることもで
きる。また、第17図に示す加速及び減速テーブルは、ロ
ボットの各動作軸毎の動作用及び前述の直線動作用など
個別に用意することも自由であり、それによって、以下
に述べる本発明の主旨がかわるものではない。
以下では、加速テーブルと減速テーブルとの2つを設
け、すべての動作条件で共用する場合を例にとって説明
する。前記した変形例に対しても、多少の手直しで適用
できる。
加速及び減速用テーブルを共用して、かつ任意のテーブ
ル部分を参照できるようにするために、各動作軸及び直
線動作用に、第17図に示すような、第n軸用ROMメモリ
を用意する。以下の説明では、第n軸用の表現は、全動
作軸及び直線動作用に個別に用意されるものの1代表例
の名称とする。第n軸用として加速及び減速テーブルを
参照するために、第17図のテーブルに対し、ラベルを付
す。
ASTRN:加速開始参照アドレス AMAXN:加速終了参照アドレス DMINN:減速終了参照アドレス DMAXN:減速開始参照アドレス 第n軸ROMメモリのエリアASTR,AMAX,DMIN,DMAXNに、上
記ラベルの値を格納する。これは、例えば、アセンブリ
言語で、下記のように記載し、 ASTR DC.W ASTRN アセンブラにかければ、自動的に、ASTRのラベルを付さ
れたエリアにASTRNの値、すなわちテーブルアドレスが
格納されることにより達成される。これにより、加速時
は、加速テーブルのASTRNからAMAXN、減速時は、減速テ
ーブルのDMINNからDMAXNの範囲を参照することが可能と
なる。また、各テーブルのラベルの位置を任志に設定し
なおすことにより、任意の範囲でテーブルを参照するこ
とが可能となる。
第n軸ROMメモリのSHUKUで定義されるエリアには、テー
ブルの参照縮少率を定義する。例えば、定義した値が1.
0であるときは、テーブル参照間隔は、1ヶずつ、すな
わちテーブルを順次参照することをあらわし、0.5に定
義したときは、テーブルを1ヶ置きに参照することを表
わす。すなわち、定義した値の逆数が、テーブル参照間
隔を表わす。あとで述べるように、この逆数値は整数と
なる必要はない。
第n軸ROMメモリのSPDG1〜SPDGnは、ロボットアームを
動作させるときに指定される速度に対応し、前記加速ま
たは減速テーブルの最大値にその値をかけると結果が指
定された速度になるように選ばれた変換定数を格納する
エリアである。ここでは、離散的にn個の変換定数を準
備するようにしているが、1ヶだけ準備し、指定された
速度との倍率をかけて実際の変換定数を算出するように
しても良い。第n軸RAMメモリのSPDGのエリアは、このS
PDGnの値またはその実動作のために補正された値を記憶
するために設けられている。KASOKU及びGENSOKUのエリ
アは、テーブル参照時の現在参照する各テーブルのアド
レスを格納している。DELTBLは、テーブルの参照間隔、
すなわち前記SHUKUの値の逆数もしくはその補正された
値を格納し、テーブル参照のアドレス計算に利用され
る。
KASOKU,GENSOKU及びDELTBLは、少数以下の値を含むテー
ブル参照アドレス及び参照ステップを格納しているが、
KASOKUまたはGENSOKU内の値を使ってテーブルを参照す
るときは、少数以下の値を切り捨てて行なう。この機能
により、固定ピッチで作成されているテーブルをフリー
ピッチで参照することができる。
第n軸RAMメモリのIKPULS及びIDPULSのエリアには、そ
れぞれ第n軸ROMメモリで参照定義されたテーブル範囲
内のテーブル値の積算値が記憶されている。それぞれの
値*縮少率*変換定数はそれぞれ、加速距離及び減速距
離を与える。
IKPULS及びIDPULSの値は、もしテーブルが固定的に扱わ
れる場合には、前もって計算して第n軸メモリ内に格納
しておくことも可能である。ここでは、演算システム初
期化時に演算手段が第n軸ROMメモリを参照して積算値
を求め、前記エリアに格納してあるものとする。
以上のテーブル及びメモリが準備され、ロボットアーム
の動作距離L0及び速度V0(実際上は、第n軸ROMメモリ
のSPDG1〜SPDGnを参照するインデックス)が与えられた
場合のテーブル参照の計画手順を第18図を用いて説明す
る。
ブロック4000は、指定された速度V0をインデックスとし
て、第n軸ROMメモリのSPDG1〜SPDGnより、変換定数を
読み出し、第n軸RAMメモリのSPDGエリアに設定する。
ブロック4001は、加速及び減速テーブルの総メンバ数
を、第n軸ROMメモリに格納されているテーブル参照ア
ドレスを用いて求める。テーブル参照アドレスのピッチ
が1である場合は、ブロック4001に示す式となる。ピッ
チが1以外の場合は、それに応じて修正すれば良い。こ
の値は、ロボットアームを加減速のみで動作させ、逐一
テーブルを参照するとしたときのテーブル参照回数をふ
し、それはまた、ロボットアームの移動時間を示してい
ることになる。
ブロック4002は、ロボットアームを加減速動作のみで動
作させたときの動作距離Lを求めている。ブロック4003
では、指定された動作距離L0と、前記Lの比較を行なっ
ている。
もし、L0≧Lの場合は、指定された動作距離L0が、加減
速テーブルで規定される加減速距離より大である、すな
わち、ロボットアームを、加速→等速→減速のパターン
で動作させる必要があることをふし、この場合は、ブロ
ック4004の処理を行なう。ブロック4004では、等速部を
含めたテーブル参照回数、実質上は、ロボットアーム第
n軸の移動時間ITIMEを求める。これは後述するよう
に、ロボットアームの全動作軸を同時スタート、同時ス
トップで動作させるような場合に利用される。
次に、減速積算値IDPULSをDPULSに修正し、さらに、テ
ーブル参照ステップDELTBLを求める。DPULSは、減速時
の減速制御の基準値として、DELTBLは、テーブル参照の
ステップ増/減分として用いられる。
もし、L0<Lの場合は、テーブルパターン通りに加減速
を行なうと、ロボットアームが目標位置を通りすぎてし
まうことを示している。このような場合に、テーブルパ
ターンの高速側を切りすててしまう方法が考えられる
が、この方法によれば、せっかく最適に設定準備したテ
ーブルパターンが有効に利用されないために、ロボット
アームの不測の振動及び加速度の急変が起ったりするの
で好ましくない。また、テーブル値を縮少、すなわちSP
DGを小さくして、L0=Lとなるように修正して利用する
方法も考えられるが、この場合は、動作距離が短かいに
も関らず、動作時間がテーブルパターンに設定した時間
と同一、一定の長い時間となり、好ましくない。そこ
で、本発明では、テーブル値の縮少と、テーブル参照ス
テップの拡大を行ない、L0=Lとなるように補正する方
法を提供する。その原理は、テーブル値を縮少すれば、
最大速度及び加速度が縮少する。従ってその分だけテー
ブル参照ステップを拡大して、初期のテーブルパターン
に示される加速度になるよう補正すれば、ロボットアー
ムの動作特性を良好に保ったまま、動作時間の短縮がで
きることにある。ここで問題となるのは、縮少、拡大に
伴なう配分率をいかに決定するかである。
テーブル値が、関数式を用いて準備されたものであるな
らば、テーブル値の縮少率をパラメータとして、最大加
速度が同一となる参照ステップの拡大率を求めることが
可能である。
ここでは、任意テーブルパターンに対処でき、かつ、容
易に配分率を決定する方法として、ブロック4005を示し
ている。テーブルパターン縮少率を とし、テーブルステップ拡大率を1/Mとする。これによ
り、変換定数SPDGをSPDG*M→SPDGに修正する。テーブ
ル参照回数もしくは移動時間ITIMEは、N*SHUKU*Mと
なる。減速積算値は、IDPULS*SHUKU*Mとなる。テー
ブル参照ステップDELTBLは1/(SHUKU*M)となる。
以上の準備のあと、ブロック4006において、テーブル参
照の初期アドレスをKASOKU及びGENSOKUに設定する。
以上述べたように、各動作軸毎もしくは直線/曲線動作
時のテーブル参照計画が求められる。
次に、全動作軸を同時に動作開始させ、同時に動作を終
了させる場合のテーブル参照計画の補正法について第19
図を用いて述べる。
まず、ブロック4010において、第18図を用いて求められ
た各動作軸の移動時間ITIMEから、同時動作させるべき
動作軸について最大移動時間ITIMEMAXを求める。続い
て、ブロック4011において、同時動作させる軸につい
て、ブロック4012〜4014を実行させる。ブロック4012で
は、第n軸の移動時間増分ΔITIMEを求める。ブロック4
013では、時間増分だけ、等速移動部を追加するとした
場合の第n軸の動作距離Lを求める。
L=Ln+ΔTIME*テーブル最大値*SPDG Lnは、第n軸の動作距離、テーブル最大値は、第n軸が
参照するテーブル値の最大のもの、すなわち無次元最大
速度、SPDGは、第n軸のテーブル変換定数である。次に
ブロック4014において第n軸の変換定数を縮少する。
SPDG=SPDG*Ln/L これにより、前述のサーボ系で、各軸独立に動作させる
ようサーボ制御しても、ロボットアームは、同時スター
ト、同時ストップするように動作する。
次に、各動作軸を非同期で動作させる場合について説明
する。これは、例えば、ロボットアームは、同期して動
作しているが、追加軸が同辺装置との関連で別モードで
動作する場合とか、第20図に示すように、物品をA点よ
りH点へ移載する場合に、第2図に例示したようなロボ
ットアームで作業させる場合にこのような動作モードが
起る。ここでは第20図の場合について説明する。第20図
は、例えばA点で物をつかみ、B点まで直線上を持ちあ
げ、C′,D、E、F′点を経由してG点よりまた直線上
を真下のH点へ移動して、H点に物品を置くような作業
を実行する動作軌跡を示している。これは、通常の5自
由度または6自由度の垂直多関節形ロボットアームで作
業を行なわせる場合、5または6つの自由度を同期させ
て、第20図の経路に従うように動作させねばならない。
これについては後述する。第2図に示すようなロボット
の場合は、上下方向の動きと、水平方向の動きは、独立
に分離できる。すなわち、上方向への点A→Cへの動き
と、水平方向の点C→Fへの動きと、下方向への点F→
Hへの動きに分離できる。そして、物品を移載するよう
な作業の場合、ロボットアームが周辺の装置と干渉しな
いようにするために、直線部A→B及びG→Hの動作さ
え確保できれば、B→C′→D→E→F′→Gの動作経
路はどのようであってもかまわない場合が多い。このよ
うな場合には、点Aから上方に向かって上下軸を動作さ
せ、点Bに到達した時点で、点C→Fに向かって水平方
向の動きを開始させる。また、水平方向の動きが点Fへ
到達する前に、点Eに到達した時点で上下軸を下方に向
かって動作させ、水平方向の移動が完了し、点Fに到達
したときに、上下軸が点Gを通過するように計画してや
れば、その作業目的を達成することができる。このよう
な動きに対しては、上下の動きと水平の動きは、あるタ
イムラグの下で非同期の動きをする。なおここで、水平
方向C→Fの動きは、直線上を運動するものであって
も、ロボットアームの各関節角を基準にして動作するも
のであってもよい。このような動作をさせるメリット
は、加速−等速−減速の動作モードでA→C,C→F,F→H
を動作させる場合と比べて、ロボットアームが先取りモ
ードで動作するから、移載作業のタクトタイムが大幅に
短縮されることである。この動作のタイムチャートを第
21図に示す。第21図よりわかるように、まず、上下動作
を開始し、上下軸が点Bに到達する時間tAB後に水平動
作を開始させる。水平動作中に上下軸は、直線C→Fで
表わされる高さに到達して停止する。水平動作開始後、
水平動作の所要時間tCFより上下軸がF→Gへの移動に
要する時間tFGを差しひいた時間後に、再び上下軸に下
方動作を指令してやれば良いことになる。上述の説明か
らもわかるように、上記の動作を規定するのは、2つの
タイマである。上方動作開始後水平動作開始までのタイ
マの設定値をt1、水平動作開始後、再び下方動作を指令
するタイマの設定値をt2とするとロボットアームのすべ
ての動きを満足させるタイマの設定値は、次のようにな
る。
t1=tAB t2=tCF−tFG(但しt2≧tBC) =tBC(但しt2≧tBC) ここでt2をtBCに設定するような条件、すなわち、上下
の動作距離が長く(動作時間が長く)、水平の動作距離
が短かい(動作時間が短かい)ような条件では、第20図
のG→Hの間よりも上下すなわち、FとGの間の位置か
ら→Hまでの間を上下軸は直線で下降する。もし、常に
G→Hの間のみを直線にする場合は、水平動作の動作時
間tCFをtBC+tFGと長くしてやれば良い。それは、前述
した第19図の手法を適用して行なうことができる。
また、上下動作、すなわち点A→B及び点G→Hの間の
動作時間は、点A→C及び点G→Fについて、第18図で
示したテーブル参照計画を実行することにより得られる
変換定数SPDG及びテーブル参照ステップDELTBLを用い
て、テーブルを順次検索し、点A→C及び点G→F動作
のためのテーブル参照回数を求めることにより得られ
る。ここでは、その詳細は簡単であるので省略する。
次に、ロボットアームを停止させることなく、教示点間
と連続して動作させる場合について説明する。一例とし
て、第20図に示す3次元空間の曲線上A→B→C′→D
→E→F′→G→Hを軌跡制御する場合について述べ
る。軌跡は、曲線A→B、円弧B→C′→D、直線D→
E、円弧E→F′→G、直線G→Hより成り、点Aより
加速を始めて、途中経路で等速となり、点Hには減速し
て停止するとする。各直線及び円弧は、前記した演算式
により、決定される。
しかし、ロボットアームの動作は、第20図の軌跡のすべ
てを事前に計算して制御することはできない。その理由
は、軌跡の途中経路を記憶するメモリが膨大なものとな
ること、ループするような軌跡の場合は、最後の減速位
置が決められないこと、動作中、操作スイッチまたは外
部入力等により停止信号が発せられたとき停止しなけれ
ばならないこと等による。従ってこの例の場合は、最初
の直線の軌道が決定された段階で、第18図に示すテーブ
ル参照計画につき、ブロック4000,4001,4002,4004のみ
を実行し、テーブルの縮少を伴なわない加減速計画を立
て、この加速計画に従ってロボットアームの動作を開始
し、次後、あとに継続する軌跡の軌道計画につき、動作
を継続し、最後に停止すべき軌跡の軌道計画が求まった
段階で既に求められた減速計画に従って減速するように
する。このようにすることにより、途中で停止信号が入
った場合の減速もスムーズにでき、またループする軌跡
に対しては停止することなく連続して動作させることが
できる。具体的内容については後述する。
以上のように軌道計画されたときに、ロボットアームを
加減速動作させる場合のテーブル参照法について第22図
を用いて説明する。
第22図において、初期値として、加速テーブルの参照開
始アドレスを示すアドレスがKASOKUに、減速テーブルの
最終アドレス(最小値)がGENSOKUに、テーブル参照ス
テップがΔに、減速テーブル値の総和がDPULSに、テー
ブル値をロボットアームを動作制御する値に変換する変
換定数がSPDGに設定されている。これはテーブル参照計
画につき説明したものと同様である。また、テーブル参
照を制御するフラグとして、Flagに加速モードが設定さ
れている。このような条件で、第22図のテーブル参照が
実行される。まず、最初はFlagに加速モードが設定され
ているから、ブロック4100の判断によりブロック4101が
実行される。ブロック4101では、KASOKUの示すアドレス
が最大を越えたか否かがチェックされる。最初は越えて
いないから、ブロック4103が実行される。すなわち、KA
SOKUの示す加速テーブルアドレスより加速テーブル値を
読み出し、レジスタに設定する。次に、テーブル参照ス
テップΔをKASOKU及びGENSOKUに加える。ここでGENSOKU
に加えているのはここで説明は省略するが、動作途中で
ロボットアームを強制減速させる場合の減速テーブルア
ドレスを設定するためである。これにより次に参照すべ
きテーブルアドレスが更新される。ここで前記したよう
にΔ,KASOKU,GENSOKUは小数点以下の値を含み、実際の
テーブル参照時はKASOKUまたはGENSOKUの整数部が用い
られる。そして得られたテーブル値は、ブロック4110に
おいて変換定数が掛けられ、実際のロボットアームを駆
動する速度を得る。上述のプロセスは繰り返し実行さ
れ、加速時の速度パターンが次々にテーブルを利用して
求められる。そして逐には、KASOKUテーブルの最大上限
に到達する。このときはブロック4102及び4110が実行さ
れる。すなわち、加速が完了して以降は定速または減速
モードで動作することになるから、減速の開始アドレス
をGENSOKUに設定し、判断フラグFlagに定速モードを設
定し、GENSOKUの示す減速テーブル値をレジスタに読み
出し、変換して動作速度を得る。次にテーブル参照が起
動されたときは、定速モードであるから、ブロック4104
以降が実行される。すなわち、 残り移動量=目標位置−現在位置 または、 目標動作距離−既動作距離 減速所要量=減速テーブルの積算値(DPULS)*変換定
数(SPDG) の比較が行なわれ、前者が後者より大であれば、減速の
必要がないから、ブロック4105及び4110の処理が実行さ
れる。GENSOKUの示すテーブルアドレス値が読み出され
るから、GENSOKUの値が変化しなければその値は一定で
あり、すなわち等速の速度指定が得られ、ロボットアー
ムは等速で動作することになる。この状態が続くと、ロ
ボットアームは順次動作目標点に近づくから、ブロック
4104の判断結果はNOとなり、ブロック4106以降の処理が
実行される。ブロック4106においては、GENSOKUの値が
テーブル参照ステップΔだけ小さくされる。すなわち、
減速テーブルの低速側の値を示すアドレスを示すよう値
が更新される。ブロック4107及び4108は減速テーブルの
定義外を参照するのを防止するための安全対策である。
ブロック4109において、GENSOKUの示すアドレスより減
速テーブル値が読み出される。また、その読み出した値
だけDPULSの値が減じられ、次の参照のときの減速所要
量の値を更新している。ブロック4110は、前述した内容
の共通処理である。このようにしてロボットアームに加
速→等速→減速または加速→減速を指令する指令値が得
られる。
ここで、上述では示さなかったが、移動中のロボットア
ームを強制的に減速して停止させる必要が生じた場合に
は、前記したように、どこから減速しても良いように、
減速テーブルを参照するためのアドレスがGENSOKUに設
定されているから、これを用いて常時ブロック4106以降
を実行させれば、ロボットアームを減速制御することが
できる。この場合は、ブロック4109のDPULSに関する補
正を行なう必要はない。
以上のテーブルの参照計画及びテーブル参照によってロ
ボットアームの1軸を加減速制御した場合の例を第23図
に示す、第23図において、は動作距離が短かく、テー
ブルパターンが縮少されて加速→減速のモードで動作し
た場合であり、は動作距離が十分長く、加速→等速→
減速のもードで動作した場合であり、は丁度両者の境
界に相当する場合である。
以上述べたように、本発明に係る加減速テーブル処理法
によれば、動作距離の大小に関せず、常に最適なパター
ンでロボットアームを動作させることができる。
以上述べた加減速パターン処理法においては、無次元速
度をテーブル値とする加速テーブル及び減速テーブルを
利用するものとして説明した。ここで、加速パターンと
減速パターンが同一である場合は、加速パターンテーブ
ルのみを設け、減速テーブルと共用するようにしても本
発明の内容とは何ら変更することなく適用することがで
きる。また、テーブル値を無次元速度でなく、無次元動
作距離としてテーブルを構成しても良い。この場合に無
次元速度が必要とされたときは、テーブル値の差を取る
ことにより容易に無次元速度を求めることができ、上述
の説明におけるテーブル処理方式を多少変更することで
対処できる。また加速テーブルは無次元速度を、減速テ
ーブルは無次元動作距離を基準として与えるようにして
も本発明に係る内容は容易に適用でき、実質同一結果が
得られる。また、加減速パターンが、ある特定の関数に
よって記述できるときは、前記テーブルに代えて、関数
値演算処理部を設け、テーブル参照を関数値演算とすれ
ば、容易に本発明を実現できる。この場合は、関数特有
の特性を利用して加減速計画を実現することもでき、こ
れは前記した通りである。
以上の説明では、直線/曲線動作をさせる場合には、動
作距離の表現によってあたかも位置のみについてである
かのように説明した。しかし、ロボットアームの回転角
についても上述の内容で実行されることないうまでもな
い。これについては考え方を明示するために、以下の座
標変換の項で一つの実施例を示す。
次に、ロボットアームを直交空間上で一定の軌跡を描い
て動作させる場合に重要となる座標変換手法について説
明する。
第24図、第2図ロボットアームの座標系の定義を示す。
ロボットの支柱軸上にZ0軸をとり、設置面上にX0軸、Y0
軸をとり、これを静止座標系とする。ここでX0軸は、ロ
ボットの正面方向とする。
θ,θ,θ,Zθ30が与えられたときの、グリッ
プ先端の位置(X0,Y0,Z0)は次式で与えられる。
ここで、a10,a20は、それぞれ第1及び第2アームの長
さである。a40,a50は、上下軸下端に取りつけられたグ
リップ先端位置の水平面内及び垂直方向成分である。ま
た、 である。
通常のロボットの座標変換に関する演算の基礎式は上式
であるが、ここでは、a10≧a20>>a40,a41と仮定し
て、次の正規化を行う。
その結果、上式は次下になる。
上記では、正規化の定数を2a10にしているが、これに限
定されるものではない。例えば、正規化の定数をa10
たはa20のように定めても良い。
位置(X,Y,Z,θ124)が与えられたときの関節角
(θ,θ,Z0,Z4)を求める。但し、ここではZは
扱わない。(後のエンコーダ値と関節角との関係式の項
で扱う)。
まず、以下のように定義する。
このとき、式(3.3)は次のようになる。
幾何学的な位置関係は、第25図に示すとおりである。第
25図から、解(θ,θ)の組が2個存在することが
予想される。いずれの解を採るかは、θの符号により
決定できる。θの符号は、あらかじめSGN(▲θ
* 2▼)として与えられているとする。
式(3.5)により、次のようにθが求められる。
同様に、式(3.5)より次のようにθが求められる。
ロボットの機械原点、すなわち原点合せ姿勢から、第24
図に示す静止座標原点姿勢までロボットを動作させると
きのエンコーダ値の変化量をEi0、サーボモータの1回
転当りのエンコーダ値を▲E* i0▼、減速機の減速比をR
iとすると、ロボットの機械原点姿勢から静止座標原点
姿勢までの関節角の変化量、すなわち原点角θi0は、次
のように与えられる。
θi0=Ei0/(▲E* i0▼・Ri (rev) 但し、ボールスクリューで駆動される第3軸の場合は、
上式の減速比1/Riをボールスクリューのリードli(mm)
で置換することにより、正規化された移動距離▲Z
▼が次式のように与えられる。
▲Z ▼=E30・l3/(▲E* 30▼・2a10)‥‥(3.1
3) 同様の考察により、エンコーダ値Eiとロボットとの動作
関節角θとの間には、次の関係式が成立する。
θ=E1/(▲E* 10▼*R1)θ10 θ=E2/▲E* 20▼・R2θ20=E3・l3/(▲E* 30▼・2a10)▲Z ▼ θ=E4/(▲E* 40▼・R4)θ40(θ
θ20)/▲R* 4▼ ここで、式(3.14)のθの右辺第3項は、ベルト伝達
系に介在する歯車系の歯数比が異なることによって生じ
た第2軸回転の干渉成分である。また、▲R* 4▼は第2
軸干渉時の伝達系の減速比を表わす。さらに、上式の○
で囲んだ+,−の符号は、ロボット機械系のエンコーダ
値が増加する場合に、静止座標系のロボット関節角が増
加するときに上式の符号をとり、逆の場合は反転すべき
ものであることを示している。
以上は、第2図に示すロボットアームについて示した
が、これに限定されるものでなく、一般の関節角ロボッ
トについても、同様の関係を導びくことができる。
なお、ここで特記すべき事項は、本アルゴリズムは正規
化手法を導入したことにより、演算量が減少すること、
並びに固定少数点演算方式を採る場合には、演算有効数
字を増大することができるという顕著な効果を示してい
ることである。また、特公昭61−2964に示されるように
通常は、ロボットアームを動作させるための数点点の記
憶に、X,Y,Zのような直交座標値を用いる方法が採られ
ているが、直交座標値を用いる場合には、位置から関節
角を求める場合に多値解が存在すれば求解ができないと
いう問題がある。これに対し、エンコーダ値を記憶する
ようにすれば、常に求解可能であり、ロボットアーム動
作制御比の問題がなくなる。
以上、サーボ制御処理部及びロボットアームを動作させ
るための基本要件について説明した。以下、本発明を具
体的に実現する処理内容について詳述する。
まず、図示しない電源スイッチを投入することにより、
ロボット制御部は初期化され、操作入力待の状態とな
る。同時にサーボ制御処理部も初期化され、動作軸すべ
てについて非常停止コマンドを与えられ、一定のサンプ
リング周期毎に、各軸について循環的に非常停止コマン
ドを実行する。ここで非常停止コマンドは各動作軸のア
クチュエータに、何も駆動信号を与えないよう動作させ
る指令である。従って、例えば第2図のロボットアーム
は、静止したままである。また、第2図のロボットアー
ムで上下軸に負荷のかかるようなロボットアームの場合
は、図示しない負作動ブレーキが作動し、上下軸の落下
を防ぐようになっている。また、上下軸以外の軸は、パ
ワーが供給されない状態であるので、手で触れると自由
に動く状態である。
次に、図示しないサーボオン電源を投入する。この場
合、第2図のロボットアームで、上下軸に負荷のかから
ないものであれば、サーボ処理部は、今まで通り、非常
停止コマンドを実行し続ける。上下軸に負荷のかかるも
ので、上下軸に負作動ブレーキを付けられたものであれ
ば、ブレーキが解除されるので、サーボ処理部の非常停
止実行部でサーボオン信号を検知して、上下軸のみにつ
いて、前記した位置保持コマンドを実行するようモード
を切り換えて、処理するよう構成する場合もある。ま
た、第3図のロボットアーム以外のもの、すなわち、垂
直多関節形ロボットアームの場合は、常に重力負荷を受
けているので、アームの全てまたはほとんどの動作軸に
負作動ブレーキをつけているので、これが解除されるこ
とになり、そのため、全動作軸につき、前述の位置保コ
マンドを実行する、すなわちいわゆるサーボロックされ
る。第3図に示すようなロボットアームについても、全
軸サーボロックされるよう動作させる場合がある。これ
は、非常停止コマンド実行処理部に、サーボオン信号検
出部を設け、サーボ処理部が自律的に、位置保持コマン
ドを実行するよう構成することにより、容易に実現でき
る。
ロボット制御部は、操作入力待の状態にあるので、第4
図に示したように、操作入力に応じて種々の動作を実行
することになる。
まず、第1に操作入力すべきものは、第3図に示す原点
合せ釦を押してロボットアームの原点合せを実行するこ
とである。これにより、第1図のパルスカウンタ初期化
と、ロボットアーム姿勢の初期化及び演算処理部の初期
化が行なわれ、演算系と機構系の同期が得られ、以降
は、演算系の指示に従って、ロボットアームを種々の動
作モードを動作させることができるようになる。
第4図の原点合せ処理部21は、前述の原点合せコマンド
を、ロボットアームの所定の軸について、順次サーボ処
理部に提供し、その完了を待って別のコマンド、別の動
作軸に与えることにより実行する。ここでは、これの詳
細は省略する。
次に、第3図に示すブログラムティーチ釦を押すと、ロ
ボットアームの演算処理は、第4図の動作教示処理部22
に移る。動作教示においては、第3図のデータ入力キー
を操作して、オペコード表示部にロボット動作制御コー
ドである記号言語を設定し、セットキーを押すことによ
り、第1図の動作手順記憶手段17の所定のエリアに動作
制御コードが格納される。これを繰り返すことにより、
一連のロボットアームの動作手順を作成することができ
る。動作制御コードについては、世にいうロボット言語
とほぼ同様であり、周知でもあるので、詳細は省略す
る。
次に、第3図に示す位置ティーチ釦を押すと、演算処理
は第4図の位置教示処理部23に移る。
位置教示処理部では、ロボットアームを第3図の位置調
整キーを操作して、目標とする動作点まで動かし、位置
決めしたのち、データ入力キーを操作してステップ表示
部へステップ番号(第1図の位置記憶手段18の記憶アド
レスを表わす)を入力し、セットキーを押して、位置決
め点の位置データ(ここでは特にEncorder値)を、ステ
ップ番号の示す第1図の位置記憶手段の記憶アドレスに
格納する。ここでステップ番号の入力は、いつでも良
く、セットキーを押すまでに入力されていれば良い。
もう一つ別の処理は、既に位置の教示が終っている教示
点を修正したい場合のロボットアームの動作制御であ
り、この場合は、第3図のデータ入力キーを操作して、
既教示済のステップ番号をステップ表示部に入力する
と、第4図の位置教示処理部23は、ステップ番号に対応
する位置データの存在をチェックし、存在すれば、オペ
コード表示部に、入力されたステップ番号位置へのロボ
ットアームの動作制御コードを表示する。このとき、第
3図のステップキーを押せば、位置教示手段は、ロボッ
トアームをオペコード表示部に表示された動作制御コー
ドに従って、ロボットアームをステップ番号位置へ動作
させる。したがって、この位置で前記した位置調整キー
を操作して、ロボットアームの微調整を行ない、セット
キーを押して、既教示点を修正することができる。
また、この位置教示モードにおいては、ロボットアーム
の動作方法を何種類か選択することができる。その1
は、ロボットアーム固有の動作軸を個々に動かす関節モ
ードである。このモードでは、例えば第3図のアーム の調整キーを押せば、ロボットの第1アームがロボット
に向かって右に動き、アーム の調整キーを押せば、ロボットの第2アームがロボット
に向かって左に動く、その2は、前記したように、ロボ
ットアーム固有の動作軸とは異なる直交座標系の軸に沿
ってロボットアーム先端を動かす直交モードである。こ
のモードでは、例えばアーム の調整キーを押せば、ロボットアームは+Y軸方向に、
アーム の調整キーを押せばロボットアームは+X軸方向に動
く。その3は、ロボットアーム先端に取りつけられたグ
リップの方向(X′軸)とそれに直角な方向(Y′軸)
に沿ってロボットアーム先端を動かす手先モードであ
る。このモードの動きは、直交モードの場合のYを
Y′、XをX′のように置き換えたものである。このよ
うな動作方法は、例えば第3図のユーティリティキーを
押し、データ入力キーで定められたコードを入力し、セ
ットキーを押すことにより選択または切り換えることが
できる。
また、この位置教示モードにおいては、ロボットの動作
速度をいく通りにか変更指定することができる。例え
ば、第3図のデータ入力キーのHキーを押すと、ジョブ
表示部にHの表示がで、予かじめ定められた高速の動作
速度、Lキーを押すと、ジョブ表示部にLの表示が出、
予かじめ定められた低速の動作速度を指定することがで
きる。
位置教示モードにおいて、調整キーを押してロボットア
ームを目標位置に誘導位置決めする手順を、第26図を用
いて説明する。ここで、アームの動作方法、動作速度
は、前記したようにしてすでに設定されているものとす
る。また、ロボットアームの現在位置は、エリアNに設
定されているものとする。位置教示モードにおいて、第
3図の位置調整キーのいずれかが押されると、第26図に
示す処理が実行される。まずブロック5020において、押
された調整キーにつき、指定された動作モードにおける
動作限界位置を求めエリアTに設定する。動作限界位置
は、例えば、動作モードが関節モードであり、押された
調整キーが、アーム である場合、第2図のロボットアームの第1アームが右
側へ動ける限界のエンコーダ値である。このような各動
作軸の限界位置は、図示しないが、あらかじめシステム
設計時に決められ、共通ROMまたはRAMメモリ上に記憶さ
れている。したがって、押された調整キーに応じてメモ
リから該当するものを読み出してくれば良い。そして、
現在位置エリアNに格納されている各軸のエンコーダ値
を目標位置エリアTのエンコーダ値エリアに移し、前記
読み出した限界位置を調整キーで指定されたエリアTの
エンコーダ値エリアに格納し、更に、このエンコーダ値
を前記した正変換手法により、関節角、直交座標値及び
手先姿勢に変換し、エリアTの該当エリアに設定すれば
良い。
動作モードが直交モードである場合のロボットアームの
動作限界位置は第2図のロボットアームの場合次のよう
に求めることができる。ロボットの現在位置と教示釦に
より指示される動作方向ベクトルより、ロボットの動作
範囲境界上に位置する動作目標位置を算出する方法を示
す。
(1)アームの伸縮から決まる動作目標値 グリップの姿勢は静止空間で一定に保つとする。このと
き、グリップ先端を直線動作させると、第2アームの先
端も直線動作する。第1アームの回転を自由とし、第2
アームの回転を上下限値内に押えると第27図の内側リミ
ット及び外側リミットで示される同心円ではさまれた第
2アームの先端部の動作領域が得られる。第27図の位置
(x0,y0)から方向ベクトル(vx,vy)の方向へ動作さ
せるときの動作境界上の位置(x,y)は次のように求め
られる。
ロボットの動作距離をl(≧0)とすると、動作直線は
次式である。
X=x0+lvx Y=y0+lvy 同心円の中心を通る動作直線への直交直線は、次式であ
る。
X=l1vy Y=−lvx 2直線の交点は、垂線の長さをl1、点(x0,y0)より交
点までの長さをl0とすると、 l1vy=x0+l0vx −l1vx=y0+l0vy を解いて、次式のように求められる。
l1=x0vy−y0vx l0=−x0vx−y0vy ここで、l1は常に≧0である。l0は動作直線が交点の方
向へ向かうとき<0、交点より離れる方向へ向かうとき
>0である。
以上の図式により、点(x0,y0)は常に動作範囲にある
とすると、動作目標点を与えるlは次式となる。
(i)l1≧Ri(動作直線が内側リミットと交わらない) または l0≦0(動作直線が外側リミットへ向かっている) のとき l=l0+▲R2 0▼−▲l2 1▼ (ii)l1≦Ri(動作直線が内側リミットと交わる) かつ l≧0(動作直線が内側リミットへ向かっている) のとき l=l0−▲R2 i▼−▲l2 1▼ (2)グリップとロボット本体との干渉により制限され
る目標値 第2アーム先端にオフセット付のグリップがついた場
合、“周辺装置との干渉”及び“ロボット本体”との干
渉の問題が生じる。ここでは、“ロボット本体”との干
渉だけ扱う。グリップベクトルを(Gx,Gy)とするとロ
ボットのグリップ先端の軌跡は、次のようになる。
X=x0+Gx+lvx Y=y0+Gy+lvy 第27図において、干渉半径Rkの内側リミットのみ存在す
るとすれば、(1)の場合と同様に求解できる。(1)
の場合と同様の記号を流用すれば、グリップとロボット
本体との干渉により制限される目標値は、次のようにな
る。
(i)l1≦Rkかつl0≧の場合 l=l0−▲R2 k▼−▲l2 1▼ (3)第1アーム関節角リミットにより制限される目標
値 第1アームが関節角リミットに固定されると、第2アー
ムの回転のみ自由となる。そこで、第1アーム先端を中
心とし、第2アーム長を半径とする円とロボットの第2
アーム先端の動作直線との交点が、第1アームの関節角
リミットにより制限される、次下に示す目標値となる。
l=l0 ▲a2 2▼−▲l2 1▼ ただし、 第1アーム関節角が下限リミットにある場合 第2アーム関節角>0(右きき)なら符号 第2アーム関節角<0(左きき)なら+符号 第1アーム関節角が上限リミットにある場合 第2アーム関節角>0(右きき)なら+符号 第2アーム関節角<0(左きき)なら符号 をとるものとする。
(4)グリップ回転角リミットにより制限される目標値 グリップ回転角θがリミットにあると、 θ+θ+θ=一定であるからθ+θ=一定す
なわち、第2アームの姿勢が静止空間上で一定となる。
したがって、位置(x0,y0)を第2軸の位置ベクトル分
だけシフトした動作経路、 X=x0−a2cθ12+lvx Y=y0−a2sθ12+lvy と第1アーム先端の描く円軌跡との交点が、グリップ回
転角により制限される、次下に示す目標値となる。
以上の解析により得られた動作距離の中の最小のもの
が、実際の動作限界点を与える限界動作距離である。
以上の動作距離l及び方向ベクトルυ及び現在位置Nよ
り、動作限界位置(X,Y,Z,θ124)を求めることができ
るから、これを逆変換することにより、メモリエリアT
に動作限界位置を設定することができる。
ブロック5021においては、動作速度、動作方向に対して
与かじめ定められた量だけ移動する、ブロック5020のデ
ータをもとに、同様の考え方で、ロボットアームの微小
移動量を求めることができ、これをエリアNに設定す
る。
ブロック5022においては、前記エリアNのエンコーダ値
を、前記したサーボ制御用の各軸用メモリの動作指令位
置エリアに設定し、1ステップ送り制御コマンドを共通
メモリのコマンドエリアに設定し、サーボ処理部に1ス
テップ送りコマンドを実行させる。1ステップ送りは、
前記したように即座に完了するから、エリアNに設定し
た位置データは、ロボットアームの現在位置を示すこと
になる。
従ってブロック5023において、所定時間の間に調整キー
が離されたことが確認されると、この処理は完了するこ
とになる。このモードにより、ロボットアームを微少送
りさせて精密位置決めすることができる。ブロック5023
において、ずっと調整キーが押され続けていることが確
認された場合には、ブロック5024及び5025を実行してロ
ボットアームを加減速制御モードで動作させる。すなわ
ち、ブロック5024において、動作モード、動作速度、及
び現在位置N、目標位置Tが与えられているから、前記
または類似の方法によりロボットアームの軌道計画をす
る。次に、5025において軌道計画に従がい、定められた
加減速パターンでロボットアームを動作させる。ここ
で、図示していないが、ブロック5025においても、調整
キーの押されているか否かは常にチェックされており、
もし離されると、ロボットアームは、強制的に定められ
た減速パターンに従って減速停止させられる。
このモードにより、ロボットアームを任意の方向に動か
して、任意の位置に大略の位置決めをすることができ
る。
次に、前記した既に教示した点へロボットアームを動作
させる場合について第28図を用いて説明する。前記した
ように第3図のオペコード表示部にロボットアームの動
作制御部コードが表示されているとする。また動作モー
ド、動作速度も設定されているとする。第28図におい
て、第3図のステップ釦が押されると、ブロック5040に
おいて、第3図のオペコード部に表示されたオペコード
を解読し、オペコードに含まれている位置No.から第1
図の位置記憶手段18に記憶されている位置(エンコーダ
値)をとり出し、前記したエリアTのエンコーダ値エリ
アに設定し、更に座標変換によって関節角及び直交座標
位置及び姿勢を求め、これもエリアTの対応するエリア
に設定する。これにより、現在位置N及び動作目標位置
Tが定まる。ブロック5041及びブロック5042の内容は、
ブロック5021及びブロック5022と同じである。但し、ブ
ロック5022においては、第3図のステップ釦の継続的操
作がチェックされる。これにより、既に教示された位置
へロボットアームを動作させることができる。
このようにして、ロボットアームの動作制御プログラム
及び動作位置の教示が完了すると、その教示結果を再生
することができる。第3図のテスト運転釦を押すと、第
4図のテスト動作処理部24、第3図の連続運転釦を押す
と、第4図の再生動作処理部25が起動される。ここで、
テスト動作処理部24と再生動作処理部25の相違は、前者
の場合は、与かじめ定められた低速でしかロボットアー
ムが動作しないよう、すなわち動作速度が制限されるテ
スト運転であるのに対し、後者は実運転モードであり、
前記動作制御プログラムに指定された速度通り動作する
ことである。以下では連続運転釦を押した場合について
説明する。次に、データ入力キーを操作して2桁のジョ
ブ番号を入力すると、第3図のジョブ部にそれが表示さ
れる。次にセットキーを押すと、もし指定された番号の
ジョブが存在すれば、その動作制御コードのステップ番
号がステップ部に、動作制御コードがオペコード部に表
示される。ここでステップ釦を押すと、表示されたオペ
コード部の動作制御コードが1ヶ実行されて終了する。
もし動作制御コードがロボットアームの動作を指定する
ものであったときは、前記した位置教示の際のステップ
釦押しと同様の方法でロボットアームを動作させる。順
次ステップ釦を押すことにより、動作制御コードが定め
られた順に1ヶずつ実行される。これは、ロボットアー
ムの動作については、内容的には前記した位置教示の際
のステップ釦押しの場合と同様であるので、詳細は省略
する。
リピート釦を押した場合は、次の動作制御コードを読み
出して実行する。これは、動作制御コードの停止コード
にそうぐうするか、または停止釦が押されるまで継続さ
れる。従って、動作制御がループするようなコードが教
示されていれば、ロボットアームは一連の定められた順
序で定められた経路で繰り返し動作することになる。
リピート釦が押されたときの処理を第29図〜第33図を用
いて説明する。
第29図において、ブロック6000は、前記した内容の再生
運転開始のための釦操作を示している。ブロック6001で
次にリピート釦を押すと、ブロック6002は、ストップ入
力またはその他のここでは示さない停止入力があるま
で、ブロック6003以降の処理を繰り返し実行するよう作
用する。もしストップ入力他があった場合は、ブロック
6001へ戻り、リピート釦入力を持ち、入力があると同じ
ことを繰り返す。ブロック6003以降の繰り返しループで
は次のような処理を行なう。ブロック6003では、順次、
動作手順コードを動作手順記憶手段より取り出しその内
容を解読する。ブロック6004で、解読結果に応じて、ブ
ロック6005〜6009のいずれかの処理を実行させ、完了す
ると、また繰り返して、ブロック6003から処理を実行す
る。ブロック6005は、直接本発明に関係しない動作コー
ド処理を実行する部分である。ブロック6006は動作速度
が指定されたとき、それを記憶する部分である。
ブロック6007は、ロボットアームを間欠運転または連続
運転で動作させる指定を記憶する部分である。ここで、
間欠運転とは、例えば、教示された2点間を直線で結ぶ
動作、またはロボットアームの機械座標系基準で動かす
動作等において、加速−等速−減速−停止のモードで運
転する方法を示す。連続運転とは、複数の教示点間を動
作開始点及び終了点ではそれぞれ加速及び減速を実行さ
せるが、途中の教示点では停止することなく連続して運
転する方法を示している。ブロック6007では、第31図に
示す追加的処理が必要であり、これは後述する。ブロッ
ク6008は、関節で動くか直交で動くかの指定を記憶する
部分である。ブロック6009は、ロボットの動作命令コー
ドを実行する部分であり、詳細は、第30図により説明す
る。ブロック6020は、ロボットアームの次の軌道計画が
終了した時点で停止入力等によりロボットアームが停止
させられたような場合の再開条件をチェックしている。
すなわち、既に軌道計画が完了している状態では、今指
令された動作命令を実行することができないから、ブロ
ック6021以降の処理により、既軌道計画値を実行させ
る。すなわち、ブロック6021で既軌道計画を実行するよ
うサーボ系に指令する。これは後述する、第32図の処理
により実行される。次にブロック6022で指定された動作
方法が間欠モードか否かをチェックし、間欠モードであ
れば、ブロック6023において、指令した軌道計画の実行
完了を待つ。これも後述する、第32図の処理を用いて実
行することができる。
次にブロック6024において、同一ステップの動作コード
を再実行させるよう準備して、処理を終了する。これに
より、演算処理ループは、ブロック6003へ戻り、ブロッ
ク6009、すなわち、再度第30図の軌道計画が実行され
る。前記の処理の必要ない場合は、ブロック6020の判断
により、ブロック6025以降の処理が実行される。ブロッ
ク6025では、位置記憶手段より、動作コードに指定され
た位置番号に相当する位置データ(エンコーダ値)をと
り出し、更に、ブロック6026で座標変換により、ロボッ
トアームの関節角及び直交座標値、姿勢を求める。次
に、ブロック6027において、軌道計画できるだけの位置
データがそろったかどうかがチェックされる。すなわ
ち、例えば、第20図に示すような、先行継続関係で動作
するモードであれば、始点A、終点H及び中間点の高さ
を示す位置データ直線で動くモードであれば、始点と終
点を示す位置データ、円弧上を動くモードであれば、始
点と中間点と終点を示す位置データがそろっているかど
うかがチェックされる。もし、そろっていなければ、処
理を終了し、第29図のブロック6003に戻る。従って、そ
の後の演算処理により、ブロック6027のチェック結果が
イエスとなり、ブロック6028以降の処理を実行する。ブ
ロック6028では、指定されたロボットアームの軌道計画
をし、前記したようなロボットアームの動作定数を決定
する。
次に、ブロック6029において、ロボットアームが停止中
であるか否かがチェックされる。これは、前記した共通
メモリの各軸動作状況エリアを参照することにより判断
される。停止中であるならば、ロボットアームを駆動開
始する処理、すなわちブロック6030,6031,6032の処理が
行なわれる。これは前記したブロック6021,6022,6023の
処理と同一である。これにより、間欠モードの時は、軌
道計画に従って加速−等速−減速−停止でロボットアー
ムが動き、連続モードのときは、ロボットアームの起動
命令のみが出される。
ブロック6029において、ロボットアームが動作中である
と判断されたときは、ブロック6033の処理へ移る。ブロ
ック6033では、停止入力のチェック、例えば第3図のス
トッパ釦入力のチェックが行なわれる。ストッパ入力が
なければ、ブロック6034において、軌道計画完了のフラ
グを設定し、ブロック6035において、補間部が新しい軌
道計画をとり込むのを待つ。そして、軌道計画が取り込
まれると、次の軌道計画を実行するために、第29図のブ
ロック6003へ戻る。
停止入力があった場合は、ブロック6036において、サー
ボ系の動作完了を待ち、すなわち、以前設定した軌道計
画に従ったロボットアームの動作完了を待つ。この場
合、新しく設定された軌道計画は、実行されないまま
で、第29図のブロック6002の作用により、ブロック6001
でのリピート釦入力待となる。これにより、前記したブ
ロック6020〜6024の処理の意味が明らかとなっていよ
う。
以上のようにロボットアームが動作している時に、前記
第29図のブロック6007の処理が指令された場合の詳細を
第31図によって説明する。第31図の処理は第30図の処理
でみたように、連続モードのときは、ロボットが動いて
いる状態で先行して動作コードの解読が行なわれ、また
軌道計画データが作成されるようになっているので、動
作モードを切り換えるような動作モードが発生したとき
に、この先行分を処理するために必要とされている。第
31図において、ブロック6050の処理は、前記ブロック60
07に示したものと同一である。次にブロック6051におい
て指定された動作モードのチェックが行なわれる。もし
連続コードのときは、何もする必要がない。間欠モード
であるときは、ブロック6052において、軌道計画された
データがあるか否かがチェックされる。もしあれば、更
にブロック6053において、ロボットアームは動いている
か否かがチェックされる。そしてロボットアームが動い
ているならば、ブロック6054,6055,6056の処理により、
現在の動作に続けて、軌道計画データをも実行させ、そ
の完了を待って、処理を終了する。ブロック6053の判断
でロボットアームが動いていなかった場合は、軌道計画
値をブロック6057,6058において加減速モードで実行さ
せてその完了を待って処理を終了する。またブロック60
52の判断の結果、軌道計画されたデータがない場合は、
ブロック6059においてロボットアームが動いているか否
かを判別し、動いていればブロック6060で停止を待って
処理を終了する。このようにして、すでに計画されたも
のをすべて実行し、ロボットアームが停止するまで待つ
ようにしているので、それ以降の欠間運転に整然と動作
モードを移すことができる。上述の説明では、軌道計画
時に例えば関節モードと直交モードが混在して指定され
るような場合については説明を省いているが、実用の演
算処理では、位置データ及び動作手順データの正当性を
チェックして安全側の動作するよう処理手順が作成され
ていることのみ付言しておく。
次に、第30,31図において、サーボ系を起動する。サー
ボ制御の完了を待つの表現で示したブロックを実際に実
行する手順を第32図を用いて説明する。
第33図では、STATEにより実行状態を切り換えるように
している。STATE=0は、全動作軸のサーボ制御完了を
表わしている。従って、第30,31図においてサーボ制御
の完了を待つの表現は、第32図の演算ブロックを実行
し、STATEの値をチェックすることにより、達成され
る。従って、完了を待つためには、第32図の演算ブロッ
クを繰り返し実行し、STATEの値をチェックすることと
等価である。また、STATE=0である場合は、いくら実
行指令が発行されても、実質上は何も実行しないので、
サーボ指令制御のダミー処理ルーチンとして利用するこ
ともできる。
また、この処理は、第20図で例をひいて説明した、先行
後続動作を含むロボットアームの動作を制御できるよう
に計画されている。従って、軌道計画処理部も、そのよ
うに軌道計画データを準備するものとする。
第32図において、サーボ系を動作させるためには、求め
られた軌道計画のデータの動作始点データをエリアN
に、終点データをエリアTに、また動作に必要な計画デ
ータをワークエリア(図示せず)にセットしてSTATE=
1として最初に実行させれば良い。第32図において、ブ
ロック6100においてSTATEの値が調べられ、その値に応
じて、各処理部が実行される。STATE=0の場合は前記
したように、何もしない。
STATE=1の場合は、サーボ系駆動のための最初の処理
である先行動作軸の起動を行なう。ブロック6101におい
て、2をstateにセットし、次の実行stateを設定する。
次にブロック6102において、先行タイマを設定する。但
し、先行タイマの計画された値は、先行動作軸がない場
合は“0"とされている。次にブロック6103において先行
動作軸の有無がチェックされ、有ればブロック6104にお
いて先行動作軸につき、サーボ起動命令が発行される。
第2図のロボットアームの例では先行動作軸は上下軸で
あり、機械座標系で動作させることができるから、サー
ボ処理部の先行動作軸用メモリの動作指令位置エリア
に、先行動作目標位置を設定し、その加減速制御のため
のテーブル検索用データを各種演算定数エリアに設定し
たのちに、先行動作軸につき加減速動作させるコマンド
を発行する。これを受けて、サーボ系は、先行動作軸に
つき加減速制御を開始する。
次に、ブロック6105で、再度サーボ指令部の演算を実行
させる。具体的には、ブロック6105は、ブロック6100へ
ジャンプする命令であれば良い。
これにより、再びブロック6100が実行され、state=2
に設定されているから、ブロック6111以降が実行され
る。ブロック6111では、前記設定された先行タイマがチ
ェックされる。設定時間が経過していなければ、前記し
たように第32図が繰り返し実行される過程で経過を待
つ。先行動作軸がない場合は、前記したことから当然な
がら、即、設定時間の完了となる。設定時間が経過して
いると、ブロック6112において、次のstate=3が設定
される。次にブロック6113で後続動作軸の有無がチェッ
クされ、有れば、ブロック1114で後続軸を起動するため
のタイマがセットされる。次にブロック6115において中
間動作軸につきサーボ起動命令が発行される。中間動作
軸の動作が関節モードである場合は、中間動作の各々に
ついて中間動作軸用メモリの動作指令位置エリアに、中
間動作軸の目標位置を設定し、その加減速制御のための
テーブル検索用データを各種演算定数エリアに設定した
のちに、中間動作軸につき、加減速動作させるコマンド
を発行し、サーボ系は中間動作軸につき、加減速制御を
開始する。中間動作軸の動作が直線動作等の直交モード
である場合は、前記の動作指令位置エリアに、中間動作
軸動作の初期位置として現在位置を設定し、中間動作軸
につき、継続制御動作させるコマンドを発行する。これ
によりサーボ系は、中間動作軸につき継続動作制御を開
始する。
この場合は、サーボ制御部の項で説明したように別の起
動方法がある。このためには、第13図に示すカウンタ3
を継続制御軸指定エリア及び継続制御動作指令位置エリ
アのインデックスとして用いる。そのために、まず、継
続制御軸指定エリアをすべてクリアし、カウンタ3をク
リアし、カウンタ3でインデックスされる継続制御軸指
定エリアに中間動作軸指定を設定し、継続制御動作指令
位置に中間動作軸の前記初期位置を設定し、カウンタ2
をサイクリックに1増加したのち、前記コマンドを発行
する。これによりサーボ系は、中間動作軸につき継続動
作制御を開始する。
なお、ここでは初期値の最初のエリアのみ設定するよう
に説明したが、全エリアに軸指定及び初期位置を設定し
たのち前記コマンドを発行しても良い。
またさらには、前記した最初のエリアに設定したのち、
後述の直交補間部の機能を用いて、残りの1部または全
部を設定したのち前記コマンドを発行しても良い。上記
いずれかの方法により、継続時のサーボ制御が開始され
るが、この場合は後述のように順次継続制御のための目
標位置を与えてやらなければならない。
次に、第32図が実行されるとSTATE=3であるからブロ
ック6121が実行される。ブロック6121では、先行動作軸
なしであったかもしくはあっても先行軸の動作が終了し
ているかがチェックされる。先行動作軸の有無は軌道計
画の結果として与えられている。また、先行動作軸の動
作終了は前記した第7図の各軸動作状況エリアの先行動
作軸につき、チェックすることにより判別できる。も
し、判定結果がyesであればブロック6121で後続タイマ
の完了がチェックされ、完了であればブロック6122でST
ATEに4がセットされ、あれば、前記した先行動作軸の
場合と同様にして、ブロック6124で後続動作軸のサーボ
制御が開始される。
次に、第32図が実行されるとすでに動作すべき軸につい
て、すべてサーボ制御コマンドが発行されているstate
=4であるから、ブロック6131が実行される。ブロック
6131では全動作軸のサーボ制御完了がチェックされる。
これも前記した第7図の各軸動作状況エリアを参照する
ことにより判別できる。チェック結果がyesであれば全
動作完了フラグとしてstate=0とセットされ、さら
に、エリアTに設定されている動作目標位置がエリアN
に移され、現在位置情報が更新される。
なお、実用の演算処理では、第32図の中に強制減速停止
処理部が用意されているが、ここでは説明は、省略す
る。
第32図の説明において、ロボットアームを機械座標系で
動作させる場合は、すべての動作制御を自律的にサーボ
処理部が自律的に実行できるので、上記説明で十分であ
る。しかし、ロボットアームが直交モードで動作する部
分については、サーボ系に逐次継続制御のデータを与え
てやらなければならない。第33図を用いて、その方法を
示す。
第33図の直交補間部は、第32図のブロック6115におい
て、直交動作が必要であった場合に初期化される。ま
た、間欠モード下で初期化された場合は、所定の加速及
び減速パターン処理を実行する。連続モードで初期化さ
れたときは所定の加速パターン処理が実行され、その後
は等速モードが継続する。減速処理の指令は、第30図の
ブロック6033で停止入力があったとき、ブロック6036の
処理の一部として指令される。もう一つは第31図のブロ
ック6056またはブロック6060の処理の一部として指令さ
れる。この指令の発行状況及び、第33図における受け取
り及び利用状況は明示していない。上述の条件処理は、
第33図のブロック6211内に含まれているものとする。
第33図において、ブロック6200において、補間完了か否
かがチェックされる。第33図の直交補間部は初期時及び
通常時は補間完了の条件に設定されている。前記したよ
うに直交補間部が初期化され、以下に示す処理で補間完
了が設定されるまでの間のみ、補間未完了の状態にあ
る。従ってこの直交補間部も、補間完了の状態でいくら
起動されても何も実行しない。
前記したように初期されて、起動されたときは、第33図
に明示される動作距離はL=0とされている。ブロック
6200のチェックが否であると、ブロック6210において補
間が必要か否かがチェックされる。サーボ処理部の継続
制御データの受け渡しをコマンドを介して行なう場合
は、コマンドの動作軸指定部のデータを参照し、軸指定
部のデータが空であったとき、補間必要となり、ブロッ
ク6221以下の処理により継続制御用指令値が求められ、
継続制御用サーボ起動時と同じ方法でデータ設定が行な
われ、サーボ系にひきわたされる。
前記したように、第13図のカウンタ3をインデックスと
してデータ受渡しを行なう場合には、カウンタ3でイン
デックスされる継続制御軸指定エリアが空であるときブ
ロック6221以下の処理により継続制御用指令値が求めら
れ、カウンタ値でインデックスされる継続制御軸指定エ
リアに軸指定が継続制御動作指令位置エリアに指令値が
設定され、サーボ系にひき渡されると共に、次のチェッ
ク用に、カウンタ3がサイクリックに+1されるように
なっている。補間が必要である場合には、上記説明及び
前述の第22図の加減速パターン処理方式によってブロッ
ク6221において、動作距離増分ΔLが求められる。次に
ブロック6222にて、動作距離Lが求められる。次にブロ
ック6223において、求められた動作距離Lと軌道計画さ
れた動作距離L0が比較される。
もし、L≧L0である場合はブロック6224で動作モードが
間欠であるか連続であるかがチェックされ、間欠である
場合は、ブロック6225において補間完了コードが設定さ
れると共に、動作距離Lが軌道計画値に設定される。連
続である場合は、ブロック6226で次の軌道計画が存在す
るか否かがチェックされる。軌道計画の存否は、第30図
のブロック6034または第31図のブロック6054において、
この直交補間部に報知されている。もしなければブロッ
ク6228で前記6225と同様の処理を行なう。存在すれば、
ブロック6227でL−L0をLに、すなわち現在の動作距離
の計画値からの超過分を設定し、次の軌道計画値をとり
込み、直交補間演算のためのデータを更新し、さらに、
計画値を取り込んだことを前記計画値の準備完了を報知
したブロックにアンサバックする。そしてブロック6223
の判断のいかんに関らず、求められた動作距離Lを用い
て、ブロック6229で前記した方法により、その動作距離
Lに相当する位置の直交座標値及び姿勢を求め、更に、
ブロック6230でこれを逆変換して、各軸のエンコーダ値
を求める。そして得られたエンコーダ値をブロック6331
でサーボ処理部の所定のエリアに設定し、前記した方法
で、サーボ処理部にひきわたす。従って、第33図の処理
がくり返し実行されることにより、サーボ処理部に継続
動作指令が提供され、それをサーボ処理部が実行するこ
とによりロボットアームは、所定の直交動作を行なうこ
とになる。
第33図の処理は、前記カウンタ3を利用するモードの場
合は1回起動されると同じ動作を2回常に実行するよう
にしても良い。このようにすると第13図の継続制御軸及
び動作指令位置エリアは常に一杯になるようデータが供
給されるので、エリアの有効活用と、サーボ処理及び直
交補間部以外の演算部の演算負荷を軽減することができ
る。
第33図の直交補間部は以上のように動作する。しかし、
まだ、サーボ制御部及び軌道計画部との接続関係が明確
にされていない。その方法を以下に示す。
その1つは次のようである。第33図の直交補間部は、前
記したように、サーボ処理部の情報にもとづきブロック
6210を判断することによって実行される。従って、第32
図に示した破線ブロック6125及び6133を追加することに
より、通常の間欠モードの加減速制御を実行することが
できる。しかし、連続モード時においては、第30図のブ
ロック6025,6026,6028の演算処理が膨大であるため、そ
の期間中に継続動作指令がとぎれる。従って、それを防
止するために、ブロック6025と6026の間、ブロック6026
と6027の間に、前記第32図の処理をそう入し、かつ、前
記したような膨大な演算を実行するブロック6028の演算
を、例えば方向ベクトルを求める演算、頂角を求める演
算、加減速パターンを求める演算に分解し、その間に前
記32図の処理をそう入する。
このようにした場合、第32図の演算は動作が完了してい
る場合は何も実行しないし、第33図の直交補間部の演算
も補間完了モードにあるときは何も実行しないので、不
必要な演算を実行してロボットアームの動作制御に悪影
響を及ぼすことはない。逆に、動作条件が設定されてい
るときは、軌道計画演算の合間に、継続制御のための演
算を実行し、サーボ処理部に提供するので、ロボットア
ームの動作制御が予定通り行なわれるというすばらしい
効果を奏する。
これは見方を変えれば、ロボットアームの動作開始時
は、動作コード解読→軌道計画→サーボ指令 直交補間部初期化 サーボ起動 のようにトップダウンで動作し、サーボ処理部が起動さ
れたあとは、サーボ処理→直交補間→軌道計画→動作コ
ード解読の優先順位付で演算が実行され、サーボ処理、
直交補間の連携によりロボットアームが動作している間
に、その演算の空時間を利用して、次にロボットアーム
を動作させるべき軌道計画が完成することになる。
その別の実施例は、次のようである。第33図の軌道補間
部を、最優先のサーボ処理部に次ぐ優先度を持つ割込処
理部として構成し、サーボ処理部が継続動作指令を、指
定された動作軸につきすべて取り込みが完了したとき
に、軌道補間部を起動する割込信号を生成するようにす
る。この信号の流れを第34図に示す。このようにする
と、サーボ処理部は、定時割込により自律的に動作す
る。そして、直交補間部の動作指令信号が必要になると
直交補間部の割込起動信号を生成する。しかし、サーボ
処理部は、最優先の割込処理部であるから、そのすべて
の演算は、正常に割込まれることなく終了する。サーボ
処理部が割込起動信号を出力した場合は、直交補間部
は、第2位の優先度を持つ割込みであるから、サーボ処
理部の演算が終了すると起動され、演算を開始する。し
かし、サーボ処理部が定時割込により演算を開始する
と、直交補間部は割込まれて、演算が中断するが、サー
ボ処理部の演算が終了すると再び中断した箇所から演算
を再開し、所定の演算を終える。すなわち、直交補間部
は、定時割込で起動されるサーボ処理部の演算空時間に
処理される。さらに、動作コード解読及び軌道計画部、
サーボ指令部は、直交補間部の演算空時間内に処理され
る。このようにして、最優先処理が実行され、その指令
により、次の優先処理が実行され、最後に、最も優先度
の低い軌道計画処理が実行され、しかも先行して軌道計
画をするようになっているので、演算論理が簡単にな
り、第1の実施例のような演算オーバーヘッドのない演
算処理が可能となった。
なお、上記は再生運転の場合について説明したがテスト
運転の場合にも同様であり、かつ、前記したように、位
置教示運転の場合についても動作開始のための前処理部
が一部相異するのみで軌道計画以降の処理は同一である
ことは容易に理解されよう。すなわち、本発明に係る演
算処理は、ロボットアームの全動作制御につき共通であ
り、共通の処理手順により実現されるものであることも
明白であろう。
〔発明の効果〕
サーボ系のサンプリングレートTsを前記動作軸の数Nで
除した時間Ts/Nよりも短い一定周期Tsm毎に前記サーボ
制御部を起動して1軸のみのサーボ制御を割込み処理
し、N回の起動によって循環的に前動作軸のサーボ制御
を完了するようにしたことにより、ロボットアームに構
成された複数の動作軸(自由度)をそれぞれ単独に動作
させることが可能になり、柔軟性の高いロボットアーム
の制御方法を提供することができる。
【図面の簡単な説明】
第1図は、本発明の全体制御システム構成図、第2図
は、本発明の適用されるロボットの一例を表す図、第3
図は、本発明に係る教示手段の一例を表す図、第4図
は、本発明の演算処理部の概略構成図、第5図は、本発
明のサーボ制御部の全体構成図、第6図は、本発明のサ
ーボ制御部のタイミングチャート、第7図は、本発明の
サーボ処理部の概略構成図、第8〜13図は、本発明のサ
ーボ処理部の各処理詳細フローチャート、第14〜15図
は、本発明の軌道計画処理を説明する図、第16〜23図
は、本発明の加減速制御法を説明する図、第24〜25図
は、本発明の座標変換を説明する図、第26〜28図は、本
発明の位置教示法を説明する図、第29〜34図は、本発明
の再生運転法を説明する図である。 〔符号の説明〕 1……制御装置、2……モーボモータ、14……教示手
段、15……演算手段、16……演算手順記憶手段、17……
動作手順記憶手段、18……位置記憶手段。
フロントページの続き (72)発明者 篠崎 弘 栃木県下都賀郡大平町大字富田800番地 株式会社日立製作所栃木工場内 (72)発明者 久富 良一 栃木県下都賀郡大平町大字富田800番地 株式会社日立製作所栃木工場内 (72)発明者 大槻 治明 茨城県土浦市神立町502番地 株式会社日 立製作所機械研究所内 (56)参考文献 特開 昭58−22687(JP,A)

Claims (3)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JPS6419409A JPS6419409A (en) 1989-01-23
JPH0782372B2 true JPH0782372B2 (ja) 1995-09-06

Family

ID=15983153

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH0782372B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102825604A (zh) * 2012-09-18 2012-12-19 广西玉林正方机械有限公司 六自由度机器人运动控制编程系统
CN105171758B (zh) * 2015-10-21 2017-02-01 孟强 一种机器人的自适应有限时间收敛滑模控制方法
DE112019006613T5 (de) * 2019-01-09 2021-09-30 Mitsubishi Electric Corporation Numerische Steuerungsvorrichtung und numerisches Steuerungsverfahren
CN113795795A (zh) * 2019-06-26 2021-12-14 深圳市晟视科技有限公司 智能相机控制移动平台的实现方法和系统
CN114932555B (zh) * 2022-06-14 2024-01-05 如你所视(北京)科技有限公司 机械臂协同作业系统及机械臂控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5822687A (ja) * 1981-08-03 1983-02-10 日本電信電話株式会社 多自由度運動機構の制御方式

Also Published As

Publication number Publication date
JPS6419409A (en) 1989-01-23

Similar Documents

Publication Publication Date Title
CN113433894B (zh) 基于工业pc的多通道多轴联动的数控系统及方法
US4685067A (en) Control system for program controlled manipulator having multiple triggered functions between programmed points
EP0619536A1 (en) Method and apparatus for numerically controlling industrial machine
Hayward et al. Introduction to RCCL: A robot control &C& library
JPH0782372B2 (ja) ロボットア−ムの制御方法
JP2606172B2 (ja) ロボット
JP3346847B2 (ja) 子局同時起動方法
JP3668821B2 (ja) ロボットコントローラおよびロボット制御方法
JP2787207B2 (ja) 多軸位置サーボ装置
JP2000194409A (ja) ロボットのプログラム変換装置
JPH07111647B2 (ja) ロボットアームの制御方法
JPH09305213A (ja) ロボット制御装置
JP2512473B2 (ja) 産業用ロボツトの補間方式
JPH0991022A (ja) ロボット制御装置
Kirćanski et al. Multiprocessor control system for industrial robots
EP4245477A1 (en) Robot system and controller
Kirćanski et al. A distributed PC-based control system for education in robotics
JPH0957671A (ja) 多関節型移動体の制御装置及びその制御方法
JP2001092795A (ja) 分散型プログラマブルサーボコントローラシステム
JPH11237919A (ja) サーボ装置の制御方法
JPS60220408A (ja) 関節形ロボツト用制御装置
Wendorf et al. Structured development of a generic workstation controller
Guptill et al. Multiprocessor based trajectory generation for multiple robotic devices
JPH05181515A (ja) 多関節ロボットにおける軸角度の計算方法
Paul et al. Robot control and computer languages

Legal Events

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