Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3588063B2 - Robot controller - Google Patents
[go: Go Back, main page]

JP3588063B2 - Robot controller - Google Patents

Robot controller Download PDF

Info

Publication number
JP3588063B2
JP3588063B2 JP2001213995A JP2001213995A JP3588063B2 JP 3588063 B2 JP3588063 B2 JP 3588063B2 JP 2001213995 A JP2001213995 A JP 2001213995A JP 2001213995 A JP2001213995 A JP 2001213995A JP 3588063 B2 JP3588063 B2 JP 3588063B2
Authority
JP
Japan
Prior art keywords
override
robot
command
output
override value
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
JP2001213995A
Other languages
Japanese (ja)
Other versions
JP2002082705A (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.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Priority to JP2001213995A priority Critical patent/JP3588063B2/en
Publication of JP2002082705A publication Critical patent/JP2002082705A/en
Application granted granted Critical
Publication of JP3588063B2 publication Critical patent/JP3588063B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は産業用ロボット(以下、単に「ロボット」と言う。)を制御するための制御装置に関し、更に詳しく言えば、オーバライド指令時や一時停止前後におけるロボット軌跡精度を向上させるようにしたロボット制御装置に関する。
【0002】
【従来の技術】
動作プログラムで指定されている速度(以下、「プログラム速度」と言う)よりも低い速度でロボットを移動させる必要がある場合には、プログラム速度に対して一定の割合で動作速度を低下させるオーバライドの手法が広く用いられている。例えば、新規作成された動作プログラムや修正を行なった動作プログラムについては、低率のオーバライドを指定して再生運転(テストラン)を行ない、危険を避けながら移動軌跡の確認を行なっている。
【0003】
軌跡が適正であると確認された動作プログラムは、実際の作業を担当するロボットの制御装置内で再生されるが、再生運転に際して指定されるオーバライドは、当然、プログラム速度通りでの移動を指令する「100%」、あるいはそれに近い高率とされることが通例である。
【0004】
ところが従来のロボット制御装置を用いた場合、オーバライドによって移動速度を低下させた場合に実現される軌跡と、オーバライド100%指定時(速度低下なし)に実現される軌跡との間にずれが生じていた。この軌跡ずれは、指定されたオーバライド値が低い程大きくなる性質がある。即ち、低率のオーバライドの下での動作中にロボットがコーナ部分にさしかかると、そのコーナで位置決めが行なわれる場合を除き、各軸及ぴ直線、円弧動作いずれの動作形式においてもツール先端点の軌跡が、指定されているオーバライド値によって大きく変化していた。
【0005】
そのため、実際の軌跡確認にあたっては、低率のオーバライドを指定した動作から始め、徐々にオーバライドをあげながらテストランを繰り返すことで正確な軌跡の確認を試みているのが現状である。このような軌跡ずれは、低率のオーバライド指定時のみならず、動作中のオーバライド値変更時やロボットの一時停止の前後(減速時、加速時)においても同様の態様で発生する。
【0006】
結局、従来技術においては、位置教示後、オーバライド100%で動作させるまでのテストランの繰り返しに長時間を要していた。また、プログラム再生動作時に一時停止の処理をした場合、減速に伴なってツール先端点位置が、一時停止の処理を行なわない通常勤作時に描かれるツール先端点の軌跡(以下、「通常軌跡」と言う)からはずれて行き、通常軌跡上に無い位置で停止する。なお、本明細書では、「一時停止」には、アラーム出力によりサーボへの移動指令出力を瞬時に停止させることを意味する「非常停止」は含まないこととする。
【0007】
同様に、一時停止後プログラム再生を再開した直後のツール先端点の軌跡も通常軌跡からはずれており、通常軌跡に一致するまでに相当の移動距離を要する。このような軌跡のずれは、ロポットハンド等のエンドエフェクタと外部物体(ジグ、ワーク、他の設置機器等)が干渉する原因にもなっていた。
【0008】
図1は、上述した問題について考察するために、プログラム再生時に動作計画からサーボへの移動指令出力までにロボット制御装置内部で行なわれていた従来方式の処理の枠組みを説明する図である。従来方式に従った通常処理の枠組は図1に示したようなもので、枠組み全体は、動作計画部と、補間処理部と、フィルタ部に大別され、各部は各軸動作用の系列と直交動作(直線動作、円弧動作等)用の系列に2分することが出来る。
【0009】
動作計画部は、動作プログラムの指定内容(移動目標位置、運動形式、プログラム速度など)に従ってロボットの動作計画を作成する部分で、動作プログラムで指定された運動形式が各軸動作であれば各軸動作計画部で動作計画が作成され、動作プログラムで指定された運動形式が直交動作(直線動作、円弧動作等)であれば直交動作計画部で動作計画が作成される。
【0010】
オーバライドはこの動作計画部で考慮され、プログラム速度にオーバライド(百分率)を乗じたものが、補間処理部に対する指令遠度出力となる。動作計画部と補間処理部の間には、動作計画部からの指令速度出力の補間処理部への送り込みを制御する動作シャッタとして機能するブロックが設けられている。動作シャッタは、指令遠度出力が生成される毎に開放され、指令遠度出力を補間処理部に渡す。
【0011】
補間処理部では、この指令遠度出力を受けて計算処理周期(ITP)毎に補間処理が各軸上あるいは直交座標系上で行なわれ、ITP毎の移動量が計算され、出力される。続くフィルタ部では、補間処理部の出力に対して所定の時定数でフィルタリングが行なわれる。この処理はロボットの加減速を制御して、加速/減速の動きを滑らかにするために行なわれる。
【0012】
各軸フィルタ処理部でフィルタリング処理された出力も、フィルタリング後、各軸(J1〜J6)のサーボへ出力される。なお、直交動作の場合、直交座標系から各軸座標系への変換を行なうためのいわゆる逆変換の処理が必要となる。この逆変換の処理はフィルタリングの前に逆変換を行なわれることが多いが、フィルタリングの後で行なうこともある。
【0013】
再生動作中にロボット制御装置内部で一時停止の指令が出力された場合には、動作シャッタのオフ反転により補間処理部にホールドがかけられ、補問処理が中断される。ホールド指令が出される前に補間処理で作成された出力はフィルタ部でフィルタ処理されて後、サーボへ出力される。サーボへ出力された移動指令が各軸の移動で消化されるとサーボへの入力が途絶え、ロボットは停止に至る。
【0014】
動作プログラムで2つの動作を滑らかにつなぐ経路が指定されている場合、2つの動作指令は重畳して処理される。その際、2つの動作の内先行動作の終点における移動接線方向と後行動作の始点における移動接線方向が互いに異なる場合には、丸みを帯びたコーナが生成される。この時の動作の重なり量が、コーナの内回りの形状を左右する。
【0015】
ここで、オーバライドの高低と動作の重なり量との関係を考えてみる。オーバライドが低い場合には、指令速度は当然低くなるが、フィルタ都の加減速処理の時定数は変わらないので、動作の重なり量は小さくなる。このことは、コーナの内回り量が小さくなる(即ち、丸みの曲率が小さくなる)ことを意味している。逆に、オーバライドが高い場合には、指令速度は当然高くなり、同じフィルタ都の加減速処理の時定数の下で動作の重なり量は大きくなる。その結果、コーナの内回り量が大きくなる(即ち、丸みの曲率が大きくなる)。
【0016】
図2は、簡単な例でこれらの現象を説明する図である。図2の例では、動作プログラムとして、イチ[1]へ向けて2000mm/secで直線移動する動作と、イチ[2]へ向けて1000mm/secで直線移動して停止(位置決め)する動作を100%の滑らかさで接続するものを考えている。コーナ通過に伴う現象を考察するために、図示した如く、イチ[1]へ向かう直線経路は−X軸方向へ向い、イチ[2]へ向かう直線経路は+Y軸方向へ向うケースを想定する。各動作のフィルタ処理後の指令速度出力推移が右上部に併記されており、符号a、bが動作の重なりを一般的に表わしている。
【0017】
今、高いオーバライドとして100%、低いオーバライドとして50%を想定すると、オーバライド100%時におけるフィルタ処理後の重なりa1、b1と、オーバライド50%時におけるフィルタ処理後の重なりa2、b2はぞれぞれ図示したようなものとなる。即ち、オーバライドが2倍のファクタで異なっているにも拘らず同じ時定数でフィルタリングが行なわれるために、動作の重なり量に大きな差が生じる。その結果、実現される軌跡はc1、c2で示したように異なったものとなる。コーナ部の丸みはc1では大きく、c2では小さい。
【0018】
次に、オーバライド100%の場合について、イチ[1]で代表されるコーナ通過中のP点で一時停止によりホールドがかかった場合を考える。ホールドがかかった時点から、イチ[2]へ向かう動作分の補間処理部の出力は、ホールドがかからなかった場合(破線dで表示)に比して急減して残留指令出力のみとなる。そのため、フィルタ処理後の2つの動作の重なりが、コーナ移動途上で急減する効果をもたらす。
【0019】
その結果、ホールドがかかった時点に対応するP点から軌跡がコーナ代表点イチ[2]側へずれてc3のようになり、ホールドがかからなかった場合の軌跡c1からはずれた点Qで停止する(イチ[1]へ向かう動作は消化されることに注意)。一時停止後に再生を再開すると、ロボット軌跡は点Qから、c4で示したような軌跡を辿ることになる(途中からc1に一致)。
【0020】
これと類似した軌跡ずれ現象は、コーナ通過中にオーバライドが切り替わった場合にも発生することは明らかである。なぜならば、同じ時定数の下でフィルタリングが行なわれるために、補間処理部の出力の大小によって2つの動作の重なり量が変化し、その結果、軌跡が変化するからである。
【0021】
即ち、これら軌跡ずれを発生させる諸ケース(オーバライドの高低、オーバライドの動作中の切換、一時停止の前後)には、フィルタリング処理の入力レベルの推移が通常時とは異なっているという共通した要因がある。フィルタリング処理の入力レベルが変化しているのに、同じ時定数の下でフィルタリング処理行なわれるために、2つの方向の異なる動作が重なる部分では、動作経路に差異が生じてしまうと考えることが出来る。
【0022】
【発明が解決しようとする課題】
そこで、本発明の目的は、従来技術において上記共通した要因で発生する軌跡ずれを解消出来るロボット制御装置を提供することにある。即ち、本発明は、オーバライドの高低、オーバライドの動作中の切換、一時停止の前後における軌跡精度の低下を防止出来るロボット制御装置を提供することにある。
【0023】
本発明はまたそのことを通して、教示後のテストラン時の軌跡と高オーバライドの下での運転時の軌跡のずれを解消し、軌跡確認作業の効率性と安全性を向上させようとするものである。更に、本発明は、オーバライドの動作中の切換や一時停止に伴う軌跡ずれをなくすことを通して、ロボット作業の精度と安全性を図るものでもある。
【0024】
【課題を解決するための手段】
本発明は、上述の如き要因で発生する軌跡ずれを解消出来るソフトウェアを装備したロボット制御装置を提供するもので、ロボットの各軸を駆動するサーボモータのサーボ系へ移動指令を出力するためのソフトウェア手段を備えたロボット制御装置に適用される。
【0025】
本発明に従えば、ロボット制御装置に装備されるソフトウェア手段は、ロボットの動作目標位置までの移動量を求め、これをある周期で補間処理し、前記補間処理された出力を加減速制御のためにフィルタリング処理する手段と、前記フィルタリング処理後の移動指令を入力とし、指定された各軸共通の指令オーバライド値に応じて前記移動指令を修正する動的速度制御手段とを持つ。
【0026】
そして、前記動的速度制御手段は、指令オーバライド値をβ%(0≦β≦100)とした時に、前記移動指令に対し、速度が(β/100)倍、また加速度が(β/100) 倍となるような移動指令(オーバライド処理後の移動指令)を出力する手段を含んでいる。
【0027】
ここで、本発明に従ったロボット制御装置は、目標オーバライド値が現在のオーバライド値と異なる場合に、前記動的速度制御手段に対する指令オーバライド値を、現在のオーバライド値から目標オーバライド値まで滑らかに変化させる指令オーバライド計算手段を持つことが出来る。
【0028】
また、本発明に従ったロボット制御装置は、プログラム実行時にロボットを一時停止させる場合に、前記目標オーバライド値を0に設定し、前記指令オーバライド計算手段により、前記動的速度制御手段に対する指令オーバライド値を現在オーバライド値から0まで滑らかに変化させる事によりロボットを減速停止させるように構成することが出来る。
【0029】
更に、本発明に従ったロボット制御装置は、プログラム実行時にロボットを非常停止させる場合に、前記目標オーバライド値と前記指令オーバライド値を共に0に設定し、移動指令出力を瞬時に0とし、ロボットを即時停止させるように構成することも出来る。
【0030】
一方、プログラムラム実行時にロボットを一時停止、または非常停止させた後、停止後に動作を再開させる場合について、本発明に従ったロボット制御装置は、前記指令オーバライド計算手段を用いて、指令オーバライド値を0から、前記目標オーバライド値まで滑らかに変化させる事によりロボットを加速させるように構成することが出来る。
【0031】
更に、前記指令オーバライド計算手段に用いて、現在のオーバライド値から、目標オーバライド値まで、指定の分割回数に分割して段階的に前記動的速度制御手段に対する指令オーバライド値を変更させることも出来る。
【0032】
ここで、前記指令オーバライド計算手段を利用して前記動的速度制御手段に対する指令オーバライド値を変化させることについて、現在のオーバライド値から、目標オーバライド値まで指数関数を用いてなめらかな変化を実現させるようにしても良い。
【0033】
また、前記一時停止の時点付近において、ロボット制御装置内部で動作データを保存し、動作再開時にその保存された動作データを利用するようにしても良い。
【0034】
なお、本発明においては、前記動作プログラムに基づく前記動作計画は、少なくとも一つの動作区間について直交動作を行なうための直交動作計画を含んでいて良い。また、前記動作プログラムに基づく前記動作計画は、少なくとも一つの動作区間について各軸動作を行なうための各軸動作計画を含んでいても良い。
【0035】
【発明の実施の形態】
図3は本発明が適用されるロボット制御装置を含むロボットシステムのハードウェアの構成を例示した要部ブロック図である。同図に示したように、全体を符号30で指示したロボット制御装置は、エンドエフェクタとしてハンド10をアーム先端部1に取り付けたロボットRBを制御する。ロボットRBはここでは6軸ロボットとする。エンドエフェクタ(ハンド10)の位置を代表する点であるツール先端点TCPは、ハンド10の中心部に設定されている。
【0036】
ロボット制御装置30はホストCPU31、共有RAM32、サーボCPU33、サーボアンプ34、メモリ35、教示操作盤用インターフェイス36並びに一般外部装置用の入出力装置38を備えている。メモリ35は、システムプログラムが格納されたROM、データの一時記憶用のRAM、及びシステム(ロボットRBの動作を定めた各種プログラムデータが格納された不揮発性メモリ)を含んでいる。
【0037】
教示操作盤用インターフェイス36に接続された教示操作盤37は、プログラムデータの入力、修正、登録や、手動送り((ジョグ送り)指令、再生運転指令等のマニュアル入力に利用される。また、外部装置用入出力装置38にはロボットRBのメカニカルブレーキの他、アプリケーションに応じた各種外部装置(例えば、溶接用電力電源装置)が接続される。
【0038】
再生運転あるいは手動送り(ジョグ送り)の実行時には、ホストCPU31はロボットRBの各軸に対する移動指令を作成し、共有RAM32へ出力する。サーボCPU33はこれを所定の短周期で読み出し、ロボット各軸の位置検出器(パルスコーダ)から送られてくる位置信号(フィードバック)に基づいてサーボ処理を実行し、各軸のサーボアンプ34に電流指令を出力し、ロボット各軸のサーボモータを駆動する。また、サーボCPU33はロボット各軸の位置検出器(パルスコーダ)から送られてくる位置信号(フィードバック)に基づいてロボット各軸の現在位置を周期的に共有RAM32に書き込む。
【0039】
上述した構成と機能は、通常のロボットシステムのそれと特に変わるところはない。本システムで用いられているロボット制御装置30が従来のものと異なるのは、ホストCPU31がプログラムデータを読み込んでから、ロボットRBの各軸に対する移動指令を作成するまでの処理過程が改良され、前述した諸要因(オーバライドの高低、オーバライドの動作中の切換、一時停止の前後処理)で発生するロボットの軌跡ずれが回避出来るようになっていることにある。改良されたプログラムデータ及び関連設定値は、メモリ35に格納されている。以下、この改良点を中心に説明する。
【0040】
図4は、本発明の実施形態について、プログラム再生時に動作計画からサーボへの移動指令出力までにロボット制御装置内部で行なわれる処理の枠組みを図1と同様の形式で説明する図である。
【0041】
図4に示した処理の枠組み全体は、従来と同様に、動作計画部と、補間処理部と、フィルタ部を備え、それぞれが各軸動作用のブロックと直交動作用のブロックを有し、各部は各軸動作用の系列と直交動作(直線動作、円弧動作等)用の系列に2分することが出来る。
【0042】
動作計画部は、動作プログラムの指定内容(移動目標位置、運動形式、プログラム速度など)に従ってロボットの動作計画を作成する部分で、動作プログラムで指定された運動形式が各軸動作であれば各軸動作計画部で動作計画が作成され、動作プログラムで指定された運動形式が直交動作(直線動作、円弧動作等)であれば直交動作計画部で動作計画が作成される。
【0043】
補間処理部では、この指令遠度出力を受けて所定の計算処理周期(ITP)毎に補間処理が各軸上あるいは直交座標系上で行なわれ、ITP毎の移動量が計算され、出力される。続くフィルタ部では、加減速制御のために補間処理部の出力に対して所定の時定数でフィルタリングが行なわれる。各軸補間処理部からの出力は、各軸フィルタ処理部でフィルタリング処理される。
【0044】
以上のブロック構成は従来と共通したものであるが、オーバライドを考慮する段階が従来とは基本的に異なっている。即ち、前述したように、従来の処理においては、オーバライドは動作計画の処理の中で考慮され、オーバライド値を乗じた後の出力が動作シャッタを介して補間処理部に渡されていたのに対し、本実施形態では本発明の特徴に従い、フィルタ部の後段に設けられている。
【0045】
また、それに伴って動作シャッタのブロックもフィルタ部の後段に移されている。
【0046】
オーバライドはこの動作シャッタ付のオーバライド処理部(動的速度制御部とも言う。以下、同じ。)で考慮され、フィルタ部の出力にオーバライド(百分率)を乗じたものが、各軸(J1〜J6)のサーボへ分配・出力される。直交補間処理部からの出力は、直交フィルタ処理部でフィルタリング処理され、逆変換を経て、各軸(J1〜J6)のサーボへ分配・出力される。直交補間処理部からの出力は、各軸への分配に際して逆変換の処理を受ける。
【0047】
再生動作中にロボット制御装置内部で一時停止の指令が出力された場合には、補間処理部ではなく、動作シャッタのオフ反転によりオーバライド部(フィルタ部の出力)にホールドがかけられる。
【0048】
本実施形態の特徴をなす処理を、オーバライド関連処理と一時停止関連処理に分けてその概略を述べれば、次のようになる。
【0049】
(1)オーバライド関連処理の概略;
本実施形態では、図4の下半部に示したように、動作計画部ではオーバライドは考慮されず、プログラム速度通りの入力に対して補間処理が行なわれる。補間処理後の出力は続くフィルタ部で所定の時定数の下でフィルタリング処理される。ここまでの段階では、処理がオーバライドに左右される余地が無いことが明らかである。従って、オーバライドが高くても低くても、また、動作途中でオーバライドの率が切り換えられても、フィルタ部の出力に全く影響はない。
【0050】
続くオーバライドの処理では、フィルタ部の出力を次の条件式(1)、(2)を満たすように修正する。なお、オーバライド値をβ%(0≦β≦100)、フィルタ部出力が表わす速度をvflout 加速度をαflout 、オーバライド処理後の出力が表わす速度をvovout、加速度をαovoutで表記する。
【0051】
αovout =αflout ×(β/100)2 ・・・(1)
vovout =vflout ×(β/100) ・・・(2)
図5は、オーバライドの処理をフィルタ部出力に50%のオーバライドをかけた場合を例にとって説明する図である。オーバライド処理では、全軸同期させながら、指令を分割して出力が生成される。今、仮にフィルタ部出力を7個のセグメントsg1〜sg7(7個の移動指令)で表わすと、それらセグメントsg1、sg2・・・sg7は、15ITPを使って、計15個のセグメントに分割されて出力される。
【0052】
例えば、sg1は、sh2で半分出力され、sh1とsh3で1/4づつ出力される。また、sg4は、sh8で半分出力され、sh7とsh9で1/4づつ出力される。出力時の各セグメントshは、両端部を除いて一般には、複数のフィルタ部出力のセグメントsgに由来する移動量が重なったものとなる。今、sg1、sg2、sg3に対応する移動量がベクトルm1、m2、m3で表される場合、それらに由来する出力のセグマントsh1〜sh5は図示したようなベクトルn1〜n5で表わされるような移動量を表わすことになる。経路としては、オーバライドが低い程滑らかさが増した軌跡が得られるが、オーバライド処理の前後で軌跡の基本ラインは変化しない。
【0053】
オーバライド処理における各ITP毎の移動量(出力セグメント=1ITP当りの移動量で速度瞬時値に相当)の計算式については後述するが、要点は次の通りである。
【0054】
1−1.加減速処理を行なったフィルタ部の出力の各移動量(入力セグメント)に対してオーバライド率(β/100)を乗じた移動量を計算する。
【0055】
1−2.上記1−1.で計算された移動量が過大な場合(そのまま出力したのでは上記式(1)、(2)の左辺が過大となって等式を成立させられない場合)には、過剰分を差し引いて出力する。なお、最初のITPでは、上記1−1.で計算された移動量では移動量が小さ過ぎて上記式(1)、(2)を満たせなくなるというケースは生じない(β≦100なので、上記式(1)、(2)の左辺が過小になることはない)。
【0056】
2.次回ITPでは、未出力の移動量に対して再度オーバライド率(β/100)を乗じた移動量を計算する。但し、それでは移動量が不足する場合(上記式(1)、(2)を満たせない場合)には、不足分を足して出力する。不足分の出力は、古い移動指令(入力セグメント)の未出力分を優先して選ぶ。2回目以降のITPでは、未出力の移動量に対して再度オーバライド率(β/100)を乗じる上記計算で移動量が過剰になることはない。
【0057】
3.更にその次のITPでは、未出力の移動量が存在する移動指令について、それぞれ再度オーバライド率(β/100)を乗じた移動を出力する。それでは移動量が不足する場合(上記式(1)、(2)を満たせない場合)には、不足分を足して出力する。不足分の出力は、古い移動指令(入力セグメント)の未出力分を優先して選ぶ。以下、同様の処理を繰り返し、全移動指令の全移動量を出力したら処理を終了する。
【0058】
このような処理では、加速に使われる移動量、加速部の移動量、減速部の移動量はほぼ一定になる。この事は、オーバライドが変わっても、2つの動作が重なる時の重なり量が一定になることを意味している。従って、オーバライドの高低によらず、コーナ部通過時についてもほぼ一定の軌跡が実現されることになる。
【0059】
図6は、セグメントsg1〜sg7で表わされる動作と、セグメントsk1〜sk7で表わされる動作が、sg6、sg7とsk1、sk2が同期する関係で重なり合った場合について、オーバライド処理の影響を説明する図である。今、例としてオーバライド50%を考えると、図5で説明したように、セグメントsg1〜sg7は、sh1〜sh15に分割して出力される。その際、sg6で表わされる移動量はsh11、sh12、sh13に分配され、sg7で表わされる移動量はsh13、sh14、sh15に分配される。
【0060】
同様に、セグメントsk1〜sk7も、sk1〜sk15に分割して出力される。そして、sk1で表わされる移動量はsq1、sq2、sq3に分配され、sk2で表わされる移動量はsq3、sq4、sq5に分配される。オーバライド処理後で見ると、2つの動作はsh11〜sh15とsq1〜sq7で重なり合うことになる。
【0061】
このように、動作の重なりにおける移動量の消化速度は両動作均等に低下しており(ここでは半分)、且つ、消化される総移動量はオーバライド50%の処理によって変化していない。このような性質は、オーバライドの率が他の値でも変わらない。
【0062】
オーバライドが動作途中で切り換えた場合も、フィルタ部出力のセグメントの分割比率を滑らかに変えて上記例に準じてオーバライドの処理を行なうことにより、同様に、一定の軌跡を保つ事が可能である。
【0063】
この場合、新旧オーバライド率を(βN /100)、(βO /100)として、加速度が(βN /100)2 から(βO /100)2 に途中変更される。そのために、オーバライド変更指令直後のITPで出力予定だったオーバライド処理出力は、更に1/[βN /(βO ×100)]回に振り分けるように調整して出力される。
【0064】
新旧オーバライド率(βN /100)、(βO /100)の急変の影響を避けるためには、オーバライド率を(βN /100)から(βO /100)に段階的に滑らかに変えていくことが好ましい。そのために、実際には、目標オ一バライド値を設定するレジスタをメモリ内に設定しておき、ユーザがこのレジスタに新オーバライド値βN を更新入力することで、現在オーバライド値を目標オーバライド値(ここでは新オーバライド率βN )へ漸近、到達させる処理が開始される。
【0065】
各ITPにおける移動量の計算にあたっては、オーバライド目標値が更新された直後のITPから、オーバライド値として、旧オーバライド目標値(βO )のオーバライド目標値(βN )の間を段階的にn回(n≧2)に区切った値を使用して移動量を計算する。例えば、オーバライド目標値が更新された直後からj回目のITPではβ=βO +jΔβとする。但し、Δβ=(βN −βO )
/n、j=1,2・・・nである。
【0066】
(2)一時停止関連処理の概略;
図7は、本実施形態における一時停止関連処理について説明するための図である。ここでは、1例として、sg1〜sg18のセグメントで表わされるフィルタ部出力(オーバライド処理後の出力であっても良い)について、セグメントsg4までのサーボへの出力が完了し、セグメントsg5の出力のためのITPでホールド指令が内部出力された場合を考える。
【0067】
この場合、図示されているように、セグメントsg5以降の移動量を表わすデータは、そのままサーボへ出力されることはなく、所定のメモリ(図3におけるメモリ35内に予め設定されるバッファ)内に一旦格納される。但し、所定の時定数(ここでは3ITP)に対応するセグメントsg5、sg6、sg7については、オーバライド処理部で動的に処理され、各軸を減速させ、やがて停止させる。
減速・停止のための動的処理としては、上述のオーバライドのかけ方を応用して、オーバライド目標値を0とし、徐々にオーバライド目標値である0までn回(n≧2)に分けて低下させる処理が採用出来る。
【0068】
図示した例では、セグメントsg5、sg6、sg7がsw5〜sw9に分配されている。結局、サーボには、セグメントsg1〜sg4(ホールド前)に続いて、sw5〜sw9が出力され、これらセグメントで表わされる移動が完了した時点でロボットは停止する。ここで注意すべきことは、減速過程を表わすsw5〜sw9で消化される総移動量は、セグメントsg5、sg6、sg7が表わす全移動量より小さいことである。
【0069】
余った移動量は、一時停止を解除して動作を再開する際に加速過程の中で消化される。即ち、一時停止を解除時には、メモリからセグメントsg5以降の移動量を表わすデータを読み出し、元の指令速度まで加速を行ないながらサーボへ出力する。
【0070】
加速過程では、セグメントsg5、sg6、sg7が表わす全移動量の内、減速過程で消化されたsw5〜sw9を差し引いたものが消化される。そのために、上述のオーバライドのかけ方を応用して、オーバライド目標値を一時停止前のオーバライド値(例えば100)とし、徐々にオーバライド目標値までn回に分けて上昇させる処理が採用出来る。
動的処理として、上述のオーバライドのかけ方を応用して、オーバライドをn回(n≧2)に分けて徐々に100%まで上昇させるに相当する処理が採用出来る。
【0071】
結局、動作再開時、サーボには、sw10〜sw15が出力され、次いで、sg8以降が出力される。減速過程と加速過程を表わすセグメントsw5〜sw15で消化される総移動量は、セグメントsg5、sg6、sg7が表わす全移動量と等しくなる。
【0072】
一時停止の前後でこのような処理を行なうことで、ホールド指令出力時に軌跡を保ったままロボットを減速し、停止にさせ、再動作時にはそこからやはり軌跡を保ったままロボットを加速し、本来の動作に移行させることが出来る。
【0073】
ホールド時には、動作再開に備えて、減速停止時の動作計画データ、補間データ、フィルタデータ等がそのまま凍結して保存されることは言うまでもない。再開動作時には、オーバライドを0に設定した状態から出発し、ホールド時に保存したデータを復帰させる。その後、再び滑らかに全軸同期させながらオーバライドを徐々に上げていく。これにより、動作計画部、補間部及びフィルタ部までは、あたかもホールドがなかったかのように処理を行いつつ、オーバライドを全軸同期させながら変更することにより、減速停止、及ぴ再開動作を行うことが可能になる。
【0074】
なお、アラームによる非常停止を行なう場合には、上述の一時停止手法をそのままは用いないで、直ちにサーボへの出力を止めて、可能な限り早くロボットを停止させる。図6の例で言えば、減速過程を形成するsw6〜sw9をサーボへの出力しない。
【0075】
その場合には、非常停止によって軌跡がはずれるので、低率のオーバライドで元の軌跡まで戻り(一旦、位置決め)、しかる後に上述のオーバライド変更手法を適用して加速させても良い。元の軌跡まで戻るに要する移動量を計算するためのデータ(図6の例で言えば、非常停止によってサーボセグメントに未出力のままとなっているsw6〜sw9のデータ)、プログラム速度のデータ等は、非常停止時点付近でメモリに記憶する。また、元の軌跡に復帰してからの動作のを定めるための諸データも、非常停止時点付近でメモリに記憶する。
【0076】
以上が実施形態の概略である。以下では、ロボットの軌跡ずれを回避するために実行される動的速度制御の処理をオーバライドの処理、一時停止/動作再開の処理に分けてより詳しく説明する。なお、説明の中で、オーバライド率50%(β=50)とは別のオーバライド率の例として、オーバライド率30%(β=30)のケースを考える。
【0077】
図8は、本発明の実施形態について、プログラム再生時に動作計画からサーボへの移動指令出力までにロボット制御装置内部で行なわれる処理の枠組みを図4とはやや異なる形式で説明する図である。本図では、各軸動作用の系列と直交動作(直線動作、円弧動作等)用の系列の区分記載は省略す一方、動的シャッタ付のオーバライド処理部を動的速度制御部と表記し、動的速度制御に関連して使用されるメモリを簡略化してブロック表示に加えた。
【0078】
図8を参照すると、系全体は、動作計画部と、補間処理部と、フィルタ部と、動的速度制御部を備え、動的速度制御部の出力が各軸のサーボ系(モータと表示)へ渡される。そして、処理の流れの中で、動的速度制御部の入力側と出力側にメモリが介在する構成となっている。メモリには、以下に説明する処理に適合するように多数のレジスタ領域が予め用意されている。
【0079】
なお、各レジスタ領域のことを単にメモリとも言う。また、フィルタ部から出力されたフルタリング処理後のn番目の移動指令をDnで表記する。図中には、動的速度制御部の入力側において、移動指令DnがメモリMnに格納されることが記されている。縦細に記された各ブロックは1単位のメモリ(バッファレジスタ領域)を意味する。入力側メモリM1にD1、M2にD2、MnにDn(n=1,2)が各々格納されることが例記されている。
【0080】
また、動的速度制御部の出力側メモリO1〜O4には、各々D2、D2’、D1、D1’が格納されることが例記されている。ここで、D2’、D1’は各々D1、D2にオーバライド値(β/100)を乗じた値である。このような入力側及び出力側のメモリの使い方の詳細は、以下の処理説明の中で述べる。
【0081】
[オーバライドの処理]
図9は、動的速度制御部で行なわれるオーバライドの処理を説明するフローチャートである。各ステップの要点は次の通りである。なお、iは補間周期のラベリング指標で、初期値はi=1とする。また、オーバライドの現在値βと目標値γを設定するレジスタが用意され、後者には希望するオーバライド目標値γ0 が予め設定される。オーバライドの現在値βの初期値は、初期設定された目標値γ0 と一致した値が自動設定される。
【0082】
(ステップS1);メモリM1、M2に各々移動指令Di、Di+1が格納されているかチェックする。格納いなければステップS2へ進み、格納されていればステップS3へ進む。
【0083】
(ステップS2);メモリM1、M2に各々移動指令Di、Di+1を格納し、移動指令Dm1、Dm2とする。ここで、m1、m2は各々メモリM1、M2に格納されたデータであることを意味するラベルである。
【0084】
(ステップS3);メモリM1に格納されている移動指令Mm1の値が0であるかチェックする。イエスであればステップS4へ進み、ノーであればステップS5へ進む。
【0085】
(ステップS4);メモリM2に格納されている移動指令Dm2をメモリM1にコピーし、Dm1とする(移動指令Dm1の値の更新)。そして、Di+1の次の動指令Di+2を読み出し、メモリM2に格納し、Dm2とする(Dm2の値の更新)。
【0086】
(ステップS5);オーバライドの現在値β%を定め、定められたβ値の下で1補間当り(1ITP当り)の移動量(移動量を表わすセグメントの高さ)Diを算出する。Diの算出法については後述する。オーバライド現在値βは、目標値γが変化すれば動作中に変化し得る。βの値が動作中に変化するのは、ユーザの途中入力、外部信号による変更、一時停止(ホールド)時、一時停止(ホールド)あるいは非常停止後の運転再開時などである。オーバライドの現在値β%を定める処理については、一時停止(ホールド)とその後の運転再開時の処理などとともに後述する。
【0087】
(ステップS6);ステップS5で算出されたDiとメモリM1に格納されている移動指令Dm1とを比較する。Dm1−Di>0であれば、ステップS8へ進み、それ以外(Dm1−Di≧0)であればステップS7へ進む。
【0088】
(ステップS7);メモリM1に格納されている移動指令Dm1を出力側のメモリO1へコピーする。次いで、このDm1とDm2を用いて、
Di=Dm1+Dm2*μ
となるμを求める。そして、このμから、Di’=Dm2*μとなるDi’を出力メモリO1へ加算する。また、Dm2をDm2=Dm2−Dm2*μに更新し、それをメモリM1にコピーして新たなDm1(Dm1の更新)とする。
【0089】
(ステップS8);ステップS5で定められた移動指令Diを出力側メモリO1に書き込む。また、メモリM1に格納されている移動指令Dm1を新たなDm1=Dm1−Diに更新する。
【0090】
(ステップS9);出力側メモリの移動指令Doをモータ(各軸サーボ系)へ出力する。
【0091】
(ステップS10);ホールド、一時停止、非常停止、動作終了指令(新たなDi出力がフィルタ部からなく、ステップS2の処理が出来ない場合に出される)等、ロボットを停止させるための指令がロボット制御装置内部で出力されているかチェックする。イエスであれば、それらのための処理(後述)を実行して、ロボットを停止させる。
ノーであれば、ステップS11へ進む。
【0092】
(ステップS11);移動指令の指標値iに1を加算し、ステップS1へ戻る。
【0093】
ここで、上記ステップS5におけるオーバライド(現在値)がβ%である場合の1補間当り(1ITP当り)の移動量Di’の計算方法を記しておく。
【0094】
移動量Di’の算出には、フィルタ部から出力される移動指令Diが一定でない場合にも滑らかに速度変化が得られるように、以下の式を使用する。
【0095】
現在i番目の1補間時間(ITP)t0 当りの移動指令Di’は、次式(3)で表わされる。
【0096】
Di’=V(i)*t0 ・・・(3)
ここで、V(i)はi番目のITPにおけるオーバライド100%とした場合の速度である。i番目のITPにおけるオーバライド100%とした場合の1ITP当りの加速度A(i)は、一応次式(4)で表わされる。
【0097】
A(i)=V(i)−V(i−1) ・・・(4)
速度推移を滑らかにするためにこのA(i)を使って、現在i番目のITPにおける加速度出力の基準式として次式(5)を採用する。
【0098】
Aout(i)=−A(i−1)/2+3*A(i)/2 ・・・(5)
これを用いて、現在i番目のITPにおける速度出力として次式(6)を採用する。
【0099】

Figure 0003588063
ここで、OVR=β/100、δはV(i)の出力をサーボ系へ出し切っている場合にはδ=1となり、V(i)の出力をサーボ系へ出し切っていない場合にはδ=0となる。
【0100】
例えば、オーバライド100%の場合には、
Vout(i)=1*[V(i)+Aout(i)*(0+1/2−1/2)=V(i)と、当然の結果が得られる。また、オーバライド50%の場合には、
Vout(i)=0.5*[V(i)+Aout(i)*(δ+0.5/2−1/2)=V(i)/2+Aout(i)/2*(δ−1/4)
であり、
δ=1の場合;V(i)/2−Aout(i)/8
δ=0の場合;V(i)/2+Aout(i)/8
となる。
【0101】
以上説明した処理を行ないながらコーナ部を含む経路動作を行なった場合にオーバライド値の高低が軌跡に与える影響について、オーバライド率30%の場合を例にとり、図15、図16を参照して説明する。コーナ部を含む経路動作としては、図14に示すように、位置G1から位置G2への直線動作と位置G2から位置G3への直線動作を滑らかに接続したものを考える。両動作のプログラム速度は等しいものとする。
【0102】
×印は教示点G1、G2、G3を表わし、★印は最終的にサーボ系へ出力される移動指令に対応する補間点の位置(補間位置)を表わしている。コーナー部は符号Aで示されている。一方、範囲Bは、始動のための加速及び停止(位置決め)のための減速の区間を表わしている。
【0103】
本例の場合、コーナー部Aでは速度一定で★印は等間隔で並ぶが、加減速区間Bでは、★印の間隔が徐々に拡大あるいは縮小している。符号q1、q2、q3はコーナー部A内の軌跡を代表する補間点で、コーナー部においてフィルタ部からの出力D1、D2に対応する移動区間を形成する。
【0104】
また、符号p1、p2、p3、p4は加速区間B内の軌跡を代表する補間点で、加減速区間におけるフィルタ部からの出力D1、D2に対応する移動区間を形成するものである。なお、実際に生成される補間点(★印)の数は遥かに大きいが表示のために少数で簡略描示した。
【0105】
図15を参照すると、図の左上部に示したように、オーバライド100%でロボットを動作させた場合のコーナー部Aの軌跡は、図14に示した通りで、フィルタ部からの出力D1、D2に対応する補間点q1、q2、q3を通る軌跡が得られる。
【0106】
これに対してオーバライド30%でロボットを動作させた場合のコーナー部Aの軌跡は、図15の右上部に示したようになる。上述したオーバライドの処理(β=30)により、フィルタ部からの出力D1、D2に対応する補間点q1、q2、q3が、より多数の補間点qd1〜qd9(符号は一部のみ表記)に変換される。各区間の計算式は図中に併記した通りである。
【0107】
ここで重要な事は、これら補間点qd1〜qd9は、元のオーバライド100%時の軌跡上に乗っていることである。この性質は、オーバライド率30%でなくとも同様に保証されている。一般には、オーバライド値100%時の補間点を基準にして、オーバライド値に反比例する数の補間点が出力され、しかもそれらはオーバライド値100%時の軌跡上に並ぶように形成される。従って、オーバライド値の高低によらず、同じ軌跡がコーナー部でも得られることになる。
【0108】
図15の左下部及び右下部には、フィルタ部出力段階の移動指令D1、D2が、分割出力される様子がセグメントで表示されている。本例のように、一定速度でコーナー部を通過する場合は、各セグメントの高さは一定となる。なお、コーナー部を形成する2つの動作のプログラム速度が異なる場合には、当然、各セグメントの高さは段階的に変化したものとなる。その場合でも、補間点が作る軌跡はオーバライド率に影響されない。
【0109】
次に加速区間を例にとって、加減速区間における軌跡について考察する。図16を参照すると、図の左上部に示したように、オーバライド100%でロボットを動作させた場合の加減速部B(ここでは加速部で代表)の軌跡は、図14に示した通りで、フィルタ部からの出力D1、D2、D3に対応する補間点p1、p2、p3、p4を通る軌跡に沿ってプログラム速度へ向かっての加速が行なわれる。
【0110】
オーバライド30%でロボットを動作させた場合の加速部Bの軌跡は、図15の右上部に示したように、オーバライド100%の場合と変らない。但し、上述したオーバライドの処理(β=30)により、フィルタ部からの出力D1、D2、D3に対応する補間点p1、p2、p3、p4が、より多数の補間点pd1〜qd11(符号は一部のみ表記)に変換される。各区間の計算式は図中に併記した通りである。
【0111】
このような性質は、オーバライド率30%でなくとも同様に保証されている。一般には、オーバライド値100%時の補間点を基準にして、オーバライド値に反比例する数の補間点が出力され、しかもそれらはオーバライド値100%時の軌跡上に並ぶように形成される。
【0112】
図15の左下部及び右下部には、フィルタ部出力段階の移動指令D1、D2、D3が、分割出力される様子がセグメントで表示されている。加減速部では、各セグメントの高さは段階的に変化したものとなる。この変化は、オーバライド100%時の速度をその30%(一般にはβ%)に減じて滑らかに加速する過程を表わしている。加速の最終到達速度は当然プログラム速度の30%(一般にはβ%)となる。
【0113】
オーバライドをロボットの動作中に変更する場合には、図17のフローチャートに示したオーバライド漸近・到達処理を行なう。この処理は後述するホールドの処理や動作再開処理でも利用される。
【0114】
オーバライド漸近・到達処理の各ステップの要点は次の通りである。
(ステップL1);オーバライド目標値を新値βN に更新する。
(ステップL2);オーバライド目標値の更新の次のITPからf回目のITPの到来を待つ。fは適当な大きさに設定された正整数値である。
(ステップL3);オーバライド現在値をβからβ+Δβに更新する。Δβは、例えばΔβ=1(%)などに予め決めておくか、あるいは次式(7)で計算する。
【0115】
Δβ=(βN −オーバライド目標値更新直前のβ)/n ・・・(7)
ここで、nはオーバライド現在値を目標値に一致させるまでに要する更新回数で、例えばn=10などとするか、別途条件から定める(後述するホールド処理の説明を参照)。このような処理を行なうことで、図9のフローチャートにおけるβが新たな目標値に向かって段階的に変更される。
【0116】
[ホールドの処理]
図10は、動的速度制御部で行なわれるホールドの処理を説明するフローチャートである。ホールドの処理は、例えばオペレータが一時停止の指令をロボット制御装置に入力した際に実行される。各ステップの要点は次の通りである。
【0117】
(ステップH1);ホールド指令がロボット制御装置内部で出力されたか否かITP毎にチェックする。出力されたら、ステップH2へ進む。
(ステップH2);動的制御部にて現在の速度Vから、時間t1経過後に滑らかに速度が0となるように、減速オーバライド値OVdを制御する。
【0118】
(ステップH3);ロボットが停止したか否かITP毎にチェックする。停止を確認したら、ステップH4へ進む。
【0119】
(ステップH4);その時点における現在位置(停止位置)、フィルタ内の移動指令のデータ、その他ロボットの動作に関する諸データをメモリ(ホールド時格納用のレジスタ)に格納して、ホールドの処理を終了する。
ステップH2の処理における減速オーバライド値OVdの制御には、図17のフローチャートに示したオーバライド漸近・到達処理を利用する。
【0120】
即ち、ステップL1におけるオーバライドの更新目標値βN をβN =0とする。また、時間t1のITP換算値をs1としてs1をη分割し(ηは1でない適当な正整数)、ステップL2におけるfをf=s1/ηとする。そして、ステップL3におけるΔβの計算式(7)におけるnをβN =0、n=ηで計算する。
【0121】
図12は、上記のホールド処理を行なった場合の速度推移を表わしている。オーバーライドは段階的に0に向かうが、それが実際の速度に反映し切るには移動指令がサーボ系に出力され切る必要がある。そのため、速度推移は直線的には降下しない。また、動作をより滑らかにするために、Δβの値を一定値とせずに滑らかな関数(例えば指数関数)に従って徐々に変化させて滑らかな加速度推移が得られるようにしても良い。
【0122】
[動作再開の処理]
図11は、動的速度制御部で行なわれる動作再開の処理を説明するフローチャートである。動作再開の処理は、一時停止後に例えば動作再開指令をロボット制御装置に入力した際に実行される。各ステップの要点は次の通りである。
【0123】
(ステップH11);メモリに格納した停止位置を読み出す。
(ステップH12);現在のロボット位置(例えば、ジョグ送りで移動している)からステップH11で読み出された停止位置までロボットを動作させる。
(ステップH13);ステップH12による動作の完了の確認。確認したら、ステップH14へ進む。
(ステップH14);再開動作に必要なデータをメモリとり読み出し、動作計画部、補間部、フィルタ部へ戻し、ホールド直前の状態を回復させる。
【0124】
(ステップH15);停止位置から、ホールド前と同様に補間動作を行なう。また、同時に動的制御部にて現在のオーバーライド値(β=0)から、時間t2経過後に滑らかに速度が元の速度vとなるように、加速オーバライド値OVaを制御する。
ステップH15の処理における加速オーバライド値OVaの制御には、図17のフローチャートに示したオーバライド漸近・到達処理を利用する。
【0125】
即ち、ステップL1におけるオーバライドの更新目標値βN をβN =ホールド直前のβの値とする。また、時間t2のITP換算値をs2としてs2をη分割し(ηは1でない適当な正整数)、ステップL2におけるfをf=s2/ηとする。そして、ステップL3におけるΔβの計算式(7)におけるnをβN =ホールド直前のβの値0、n=ηで計算する。
【0126】
図13は、上記のステップH15の処理を行なった場合の速度推移を表わしている。オーバーライドは0から段階的に元の値に向かうが、それが実際の速度に反映し切るには移動指令がサーボ系に出力され切る必要がある。そのため、速度推移は直線的には上昇しない。また、動作をより滑らかにするために、Δβの値を一定値とせずに滑らかな関数(例えば指数関数)に従って徐々に変化させて滑らかな加速度推移が得られるようにしても良い。
【0127】
【発明の効果】
本発明によれば、従来技術においてオーバライドの高低、オーバライドの動作中の切換あるいは一時停止に関連して発生していた軌跡ずれが防止出来る。また、そのことを通して、教示後のテストランによる軌跡確認作業の効率性、信頼性並びに安全性を向上させることが出来る。更に、オーバライドの動作中の切換や一時停止に伴う軌跡ずれをなくなるので、ロボット作業の精度と安全性が向上する。
【図面の簡単な説明】
【図1】プログラム再生時に動作計画からサーボへの移動指令出力までにロボット制御装置内部で行なわれていた従来方式の処理の枠組みを説明する図である。
【図2】図1に示した従来方式の処理に関連して、簡単な例を用いて、軌跡ずれが発生する理由を説明するための図である。
【図3】本発明が適用されるロボット制御装置を含むロボットシステムのハードウェアの構成を例示した要部ブロック図である。
【図4】本発明の実施形態について、プログラム再生時に動作計画からサーボへの移動指令出力までにロボット制御装置内部で行なわれる処理の枠組みを図1と同様の形式で説明する図である。
【図5】オーバライドの処理をフィルタ部出力に50%のオーバライドをかけた場合を例にとって説明する図である。
【図6】セグメントsg1〜sg7で表わされる動作と、セグメントsk1〜sk7で表わされる動作が、sg6、sg7とsk1、sk2が同期する関係で重なり合った場合について、オーバライド処理の影響を説明する図である。
【図7】本実施形態における一時停止関連処理について説明するための図である。
【図8】本発明の実施形態について、プログラム再生時に動作計画からサーボへの移動指令出力までにロボット制御装置内部で行なわれる処理の枠組みを図4とはやや異なる形式で説明する図である。
【図9】動的速度制御部で行なわれるオーバライドの処理の要点を記したフローチャートである。
【図10】動的速度制御部で、一時停止時に実行されるホールドの処理の要点を記したフローチャートである。
【図11】動的速度制御部で、一時停止後の動作再開時に実行される処理の要点を記したフローチャートである。
【図12】ホールド処理を行なった場合の速度推移を表わした図である。
【図13】動作再開におけるオーバーライド漸増の処理を行なった場合の速度推移を表わした図である。
【図14】図15、図16の説明の前提として想定される経路動作を示した図である。
【図15】図14に示した経路動作について、オーバライド値の高低がコーナー部における軌跡に与える影響について、オーバライド率30%の場合を例にとって説明する図である。
【図16】図14に示した経路動作について、オーバライド値の高低が加減速部における軌跡に与える影響について、オーバライド率30%の場合を例にとって説明する図である。
【図17】オーバライド漸近・到達処理を説明するフローチャートである。
【符号の説明】
1 アーム先端部
10 ハンド
30 ロボット制御装置
31 ホストCPU
32 共有RAM
33 サーボCPU
34 サーボアンプ
35 メモリ
36 教示操作盤用インターフェイス
38 入出力装置
37 教示操作盤
RB ロボット[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a control device for controlling an industrial robot (hereinafter, simply referred to as a “robot”), and more particularly, to a robot control for improving the robot trajectory accuracy at the time of an override command or before and after a temporary stop. Equipment related.
[0002]
[Prior art]
If it is necessary to move the robot at a speed lower than the speed specified in the operation program (hereinafter referred to as “program speed”), an override that reduces the operation speed at a fixed rate to the program speed The technique is widely used. For example, for a newly created operation program or a modified operation program, a regeneration operation (test run) is performed by specifying a low-rate override, and the movement locus is checked while avoiding danger.
[0003]
The operation program whose trajectory is confirmed to be appropriate is reproduced in the control device of the robot in charge of the actual work, but the override specified during the reproduction operation naturally commands movement at the programmed speed. It is customary to set it to "100%" or a high rate close to it.
[0004]
However, when the conventional robot control device is used, there is a difference between the trajectory realized when the moving speed is reduced by the override and the trajectory realized when the override is specified at 100% (no speed reduction). Was. This trajectory shift has the property of increasing as the designated override value decreases. In other words, if the robot approaches a corner during operation under a low-rate override, the position of the tool tip point in any axis, straight line, or circular motion, except when positioning is performed at that corner. The trajectory changed greatly depending on the specified override value.
[0005]
For this reason, in the actual trajectory confirmation, an attempt is made to confirm an accurate trajectory by starting from an operation in which a low-rate override is designated and repeating a test run while gradually increasing the override. Such a trajectory shift occurs in a similar manner not only when a low-rate override is designated, but also when an override value is changed during operation or before and after a temporary stop (at the time of deceleration or acceleration) of the robot.
[0006]
After all, in the prior art, it took a long time to repeat the test run from the position teaching until the operation was performed at the override of 100%. When a pause process is performed during the program reproducing operation, the position of the tool tip point along with the deceleration is changed to the locus of the tool tip point drawn during normal work without performing the pause process (hereinafter, “normal locus”). ) And stops at a position that is not normally on the trajectory. In this specification, "temporary stop" does not include "emergency stop" which means that the movement command output to the servo is instantaneously stopped by an alarm output.
[0007]
Similarly, the trajectory of the tool tip point immediately after resuming the program reproduction after the pause is also out of the normal trajectory, and requires a considerable moving distance until it coincides with the normal trajectory. Such a shift in the trajectory has also caused interference between an end effector such as a robot hand and an external object (a jig, a work, another installed device, etc.).
[0008]
FIG. 1 is a diagram for explaining a framework of a conventional processing that is performed inside a robot controller from an operation plan to a movement command output to a servo during program reproduction in order to consider the above-described problem. The framework of normal processing according to the conventional method is as shown in FIG. 1, and the entire framework is roughly divided into an operation planning unit, an interpolation processing unit, and a filter unit, and each unit is a sequence for each axis operation. The sequence can be divided into two for orthogonal operation (linear operation, arc operation, etc.).
[0009]
The motion planning unit is a part that creates a robot motion plan according to the contents specified in the motion program (moving target position, motion format, program speed, etc.). If the motion format specified in the motion program is each axis motion, An operation plan is created by the operation planning unit, and if the motion format specified by the operation program is orthogonal operation (linear operation, arc operation, etc.), the operation plan is created by the orthogonal operation planning unit.
[0010]
The override is considered by the operation planning unit, and the product of the program speed and the override (percentage) is the commanded far output to the interpolation processing unit. Between the operation planning unit and the interpolation processing unit, there is provided a block functioning as an operation shutter for controlling sending of the command speed output from the operation planning unit to the interpolation processing unit. The operation shutter is opened each time the commanded far output is generated, and passes the command far output to the interpolation processing unit.
[0011]
In response to the command output, the interpolation processing unit performs an interpolation process on each axis or a rectangular coordinate system at each calculation processing cycle (ITP), and calculates and outputs a movement amount for each ITP. In the subsequent filter unit, the output of the interpolation processing unit is filtered with a predetermined time constant. This process is performed to control the acceleration / deceleration of the robot and to smooth the acceleration / deceleration movement.
[0012]
The output filtered by each axis filter processing unit is also output to the servo of each axis (J1 to J6) after filtering. In the case of the orthogonal operation, a so-called inverse conversion process for performing conversion from the orthogonal coordinate system to each axis coordinate system is required. In the inverse conversion process, the inverse conversion is often performed before the filtering, but may be performed after the filtering.
[0013]
If a temporary stop command is output inside the robot controller during the reproduction operation, the interpolation processing unit is held by the inversion of the operation shutter and the interrogation processing is interrupted. The output created by the interpolation process before the hold command is issued is filtered by the filter unit and then output to the servo. When the movement command output to the servo is consumed by the movement of each axis, the input to the servo is interrupted, and the robot stops.
[0014]
When a path that smoothly connects the two operations is specified by the operation program, the two operation commands are processed in a superimposed manner. At this time, if the moving tangent direction at the end point of the preceding operation of the two operations is different from the moving tangent direction at the start point of the following operation, a rounded corner is generated. The overlapping amount of the motion at this time determines the inner shape of the corner.
[0015]
Here, the relationship between the level of the override and the overlap amount of the operation will be considered. When the override is low, the command speed naturally decreases, but the time constant of the acceleration / deceleration processing of the filter does not change, so that the overlap amount of the operation decreases. This means that the inward turning amount of the corner becomes smaller (that is, the curvature of the roundness becomes smaller). Conversely, when the override is high, the command speed naturally increases, and the overlap amount of the operation increases under the time constant of the acceleration / deceleration processing of the same filter. As a result, the inward turning amount of the corner increases (that is, the curvature of the roundness increases).
[0016]
FIG. 2 is a diagram illustrating these phenomena in a simple example. In the example of FIG. 2, the operation program includes an operation of linearly moving at 2000 mm / sec toward point [1] and an operation of linearly moving and stopping (positioning) at 1000 mm / sec toward point [2]. Think of something that connects with a% smoothness. In order to consider the phenomenon associated with the corner passing, as shown in the figure, it is assumed that the straight path toward the point [1] is in the −X axis direction, and the straight path toward the point [2] is in the + Y axis direction. The transition of the command speed output after the filtering process for each operation is also shown in the upper right part, and the symbols a and b generally indicate the overlap of the operations.
[0017]
Now, assuming that the high override is 100% and the low override is 50%, the overlaps a1 and b1 after the filter processing when the override is 100% and the overlaps a2 and b2 after the filter processing when the override is 50% are respectively. The result is as shown in the figure. That is, although the override is different by a factor of two, filtering is performed with the same time constant, so that there is a large difference in the amount of overlapping operation. As a result, the trajectories realized are different as indicated by c1 and c2. The roundness of the corner is large at c1 and small at c2.
[0018]
Next, in the case of the override of 100%, a case is considered in which a hold is applied due to a temporary stop at a point P during a corner passing represented by the point [1]. From the time when the hold is applied, the output of the interpolation processing unit for the operation toward the position [2] is sharply reduced as compared with the case where the hold is not applied (indicated by a broken line d), and only the residual command output is output. For this reason, an overlap between the two operations after the filtering process has an effect of rapidly decreasing during the movement of the corner.
[0019]
As a result, the trajectory shifts from the point P corresponding to the time when the hold was applied to the corner representative point 1 [2] side, as shown by c3, and stops at the point Q deviated from the trajectory c1 when the hold was not applied. (Note that the operation toward [1] is digested). When the reproduction is resumed after the pause, the robot trajectory follows the trajectory indicated by c4 from point Q (coincident with c1 from the middle).
[0020]
It is clear that a similar trajectory shift phenomenon also occurs when the override is switched during cornering. This is because the filtering is performed under the same time constant, so that the amount of overlap between the two operations changes depending on the magnitude of the output of the interpolation processing unit, and as a result, the trajectory changes.
[0021]
That is, in the various cases in which the trajectory shift occurs (override level, switching during the operation of the override, before and after the temporary stop), a common factor that the transition of the input level of the filtering processing is different from the normal state is as follows. is there. Since the filtering process is performed under the same time constant even though the input level of the filtering process is changed, it can be considered that a difference occurs in the operation path in a portion where different operations in two directions overlap. .
[0022]
[Problems to be solved by the invention]
Therefore, an object of the present invention is to provide a robot control device that can eliminate a trajectory shift generated by the common factor in the related art. That is, an object of the present invention is to provide a robot control device capable of preventing a decrease in trajectory accuracy before and after a change in override operation, a change during override operation, and a temporary stop.
[0023]
The present invention also intends to eliminate the deviation between the trajectory during the test run after the teaching and the trajectory during the operation under the high override, thereby improving the efficiency and safety of the trajectory checking work. is there. Further, the present invention aims to improve the accuracy and safety of the robot operation by eliminating the trajectory shift due to the switching or the temporary stop during the operation of the override.
[0024]
[Means for Solving the Problems]
The present invention provides a robot control device equipped with software capable of eliminating a trajectory shift generated due to the above-described factors, and a software for outputting a movement command to a servo system of a servo motor that drives each axis of the robot. The present invention is applied to a robot control device having means.
[0025]
According to the present invention, the software means provided in the robot control device obtains the movement amount of the robot to the operation target position, interpolates this in a certain cycle, and uses the interpolated output for acceleration / deceleration control. And a dynamic speed control unit that receives the movement command after the filtering process as input, and corrects the movement command according to a designated command override value common to each axis.
[0026]
And the dynamic speed control means,When the command override value is β% (0 ≦ β ≦ 100),In response to the movement command, the speed is(Β / 100) times and acceleration is (β / 100) 2 Movement command that doubles (move command after override processing)Output means.
[0027]
Here, the robot control device according to the present invention smoothly changes the command override value for the dynamic speed control means from the current override value to the target override value when the target override value is different from the current override value. Command override calculating means for causing the command to be calculated.
[0028]
Further, the robot control device according to the present invention sets the target override value to 0 when the robot is temporarily stopped at the time of executing the program, and sets the target override value to the dynamic speed control unit by the command override calculation unit. Is smoothly changed from the current override value to 0 to decelerate and stop the robot.
[0029]
Further, the robot control device according to the present invention sets both the target override value and the command override value to 0 and sets the movement command output to 0 instantaneously when stopping the robot in an emergency when executing the program. It can be configured to stop immediately.
[0030]
On the other hand, in the case where the robot is temporarily stopped during the execution of the program ram, or after an emergency stop, the operation is resumed after the stop, the robot control device according to the present invention uses the command override calculating means to set the command override value. The robot can be configured to accelerate by smoothly changing from 0 to the target override value.
[0031]
Further, by using the command override calculation means, the command override value for the dynamic speed control means can be changed stepwise by dividing the current override value to the target override value into a specified number of divisions.
[0032]
Here, regarding changing the command override value for the dynamic speed control means using the command override calculation means, a smooth change using an exponential function from the current override value to the target override value is realized. You may do it.
[0033]
Further, the operation data may be stored in the robot controller near the time of the temporary stop, and the stored operation data may be used when the operation is resumed.
[0034]
In the present invention, the operation plan based on the operation program may include an orthogonal operation plan for performing an orthogonal operation on at least one operation section. Further, the operation plan based on the operation program may include each axis operation plan for performing each axis operation for at least one operation section.
[0035]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 3 is a main block diagram illustrating the hardware configuration of a robot system including a robot control device to which the present invention is applied. As shown in the figure, the robot control device generally designated by reference numeral 30 controls a robot RB in which the hand 10 is attached to the arm tip 1 as an end effector. Here, the robot RB is a six-axis robot. The tool tip point TCP, which is a point representing the position of the end effector (hand 10), is set at the center of the hand 10.
[0036]
The robot controller 30 includes a host CPU 31, a shared RAM 32, a servo CPU 33, a servo amplifier 34, a memory 35, a teaching operation panel interface 36, and an input / output device 38 for a general external device. The memory 35 includes a ROM in which a system program is stored, a RAM for temporarily storing data, and a system (a non-volatile memory in which various program data defining the operation of the robot RB are stored).
[0037]
The teaching operation panel 37 connected to the teaching operation panel interface 36 is used for inputting, correcting, and registering program data, and for manual input of a manual feed ((jog feed) command, a regeneration operation command, etc.). In addition to the mechanical brake of the robot RB, various external devices (for example, a power supply device for welding) corresponding to the application are connected to the device input / output device 38.
[0038]
At the time of executing the regeneration operation or the manual feed (jog feed), the host CPU 31 creates a movement command for each axis of the robot RB and outputs it to the shared RAM 32. The servo CPU 33 reads this out at a predetermined short cycle, executes servo processing based on a position signal (feedback) sent from a position detector (pulse coder) of each axis of the robot, and supplies a current command to the servo amplifier 34 of each axis. And drives the servo motors of each axis of the robot. The servo CPU 33 periodically writes the current position of each axis of the robot to the shared RAM 32 based on a position signal (feedback) sent from a position detector (pulse coder) of each axis of the robot.
[0039]
The configuration and function described above are not particularly different from those of a normal robot system. The robot controller 30 used in the present system is different from the conventional one in that the processing steps from the host CPU 31 reading the program data to creating a movement command for each axis of the robot RB are improved. This is to prevent the robot's trajectory deviation occurring due to the various factors (override level, switching during override operation, processing before and after temporary stop). The improved program data and related setting values are stored in the memory 35. The following description focuses on this improvement.
[0040]
FIG. 4 is a diagram illustrating, in the same form as that of FIG. 1, a framework of processing performed within the robot controller from the operation plan to the movement command output to the servo during program reproduction according to the embodiment of the present invention.
[0041]
The entire processing framework shown in FIG. 4 includes an operation planning unit, an interpolation processing unit, and a filter unit, each of which has a block for each axis operation and a block for orthogonal operation, as in the related art. Can be divided into a series for each axis operation and a series for orthogonal operation (linear operation, arc operation, etc.).
[0042]
The motion planning unit is a part that creates a robot motion plan according to the contents specified in the motion program (moving target position, motion format, program speed, etc.). If the motion format specified in the motion program is each axis motion, An operation plan is created by the operation planning unit, and if the motion format specified by the operation program is orthogonal operation (linear operation, arc operation, etc.), the operation plan is created by the orthogonal operation planning unit.
[0043]
In the interpolation processing unit, upon receiving the command distance output, the interpolation processing is performed on each axis or the orthogonal coordinate system at every predetermined calculation processing cycle (ITP), and the movement amount for each ITP is calculated and output. . In the subsequent filter unit, the output of the interpolation processing unit is filtered with a predetermined time constant for acceleration / deceleration control. The output from each axis interpolation processing unit is filtered by each axis filter processing unit.
[0044]
Although the above block configuration is common to the conventional one, the step of considering the override is basically different from the conventional one. That is, as described above, in the conventional processing, the override is considered in the processing of the operation plan, and the output after being multiplied by the override value is passed to the interpolation processing unit via the operation shutter. In the present embodiment, according to the features of the present invention, it is provided at the subsequent stage of the filter unit.
[0045]
In addition, the block of the operation shutter is also moved to the subsequent stage of the filter unit.
[0046]
The override is considered in the override processing unit with the operation shutter (also referred to as a dynamic speed control unit; the same applies to the following). The output of the filter unit multiplied by the override (percentage) is calculated for each axis (J1 to J6). Are distributed and output to the servos. The output from the orthogonal interpolation processing unit is filtered by the orthogonal filter processing unit, subjected to inverse transformation, and distributed and output to servos of each axis (J1 to J6). The output from the orthogonal interpolation processing unit is subjected to an inverse conversion process at the time of distribution to each axis.
[0047]
If a temporary stop command is output inside the robot controller during the reproduction operation, the hold is applied not to the interpolation processing unit but to the override unit (the output of the filter unit) by the inversion of the operation shutter.
[0048]
The processing that characterizes the present embodiment is divided into override-related processing and temporary stop-related processing, and the outline thereof is as follows.
[0049]
(1) Overview of override-related processing;
In the present embodiment, as shown in the lower half of FIG. 4, the motion planning unit does not consider the override, and performs the interpolation processing on the input at the program speed. The output after the interpolation processing is filtered by a subsequent filter unit under a predetermined time constant. At this stage, it is clear that there is no room for the process to depend on the override. Therefore, whether the override is high or low, or if the override rate is switched during the operation, the output of the filter unit is not affected at all.
[0050]
In the following override processing, the output of the filter unit is modified so as to satisfy the following conditional expressions (1) and (2). Note that the override value is represented by β% (0 ≦ β ≦ 100), the velocity represented by the output of the filter unit is represented by vfout acceleration, αfout represents the velocity represented by the output after the override processing is represented by vovout, and the acceleration is represented by αovout.
[0051]
αovout = αflow × (β / 100) 2 (1)
vovout = vfout × (β / 100) (2)
FIG. 5 is a diagram illustrating an example of a case where an override process is applied to a filter unit output by 50%. In the override processing, an instruction is divided and an output is generated while synchronizing all axes. If the output of the filter unit is represented by seven segments sg1 to sg7 (seven movement commands), the segments sg1, sg2,... Sg7 are divided into a total of 15 segments using 15ITP. Is output.
[0052]
For example, sg1 is output in half at sh2, and is output at 1 / each of sh1 and sh3. Also, sg4 is output in half at sh8, and is output at quarters at sh7 and sh9. Except for both ends, each segment sh at the time of output generally has a movement amount derived from the segment sg of a plurality of filter unit outputs overlapping. Now, when the movement amounts corresponding to sg1, sg2, and sg3 are represented by vectors m1, m2, and m3, the output segmants sh1 to sh5 derived from the movement amounts are represented by vectors n1 to n5 as illustrated. Will represent a quantity. As the route, a locus with increased smoothness is obtained as the override is lower, but the basic line of the locus does not change before and after the override process.
[0053]
The formula for calculating the amount of movement for each ITP in the override processing (output segment = amount of movement per ITP, corresponding to the instantaneous speed value) will be described later, but the main points are as follows.
[0054]
1-1. A movement amount is calculated by multiplying each movement amount (input segment) of the output of the filter unit that has undergone the acceleration / deceleration processing by the override rate (β / 100).
[0055]
1-2. 1-1. If the amount of movement calculated in (1) is too large (if the output is performed as it is, the left side of the above equations (1) and (2) becomes too large to satisfy the equation), the excess is subtracted and output. I do. In the first ITP, the above 1-1. With the movement amount calculated in (1), there is no case where the movement amount is too small to satisfy Expressions (1) and (2) (because β ≦ 100, the left side of Expressions (1) and (2) is too small). Never be.)
[0056]
2. In the next ITP, the movement amount is calculated by multiplying the non-output movement amount again by the override rate (β / 100). However, if the amount of movement is insufficient (if the above equations (1) and (2) cannot be satisfied), the shortage is added and output. Insufficient outputs are selected with priority given to unoutputted old movement commands (input segments). In the second and subsequent ITPs, the above-described calculation of multiplying the non-output movement amount by the override rate (β / 100) again does not make the movement amount excessive.
[0057]
3. Further, in the next ITP, for a movement command having a movement amount that has not been output, a movement multiplied again by the override rate (β / 100) is output. If the amount of movement is insufficient (if the above equations (1) and (2) cannot be satisfied), the shortage is added and output. Insufficient outputs are selected with priority given to unoutputted old movement commands (input segments). Hereinafter, the same processing is repeated, and when the entire movement amount of all the movement commands is output, the processing is ended.
[0058]
In such processing, the movement amount used for acceleration, the movement amount of the acceleration unit, and the movement amount of the deceleration unit become substantially constant. This means that even when the override changes, the overlap amount when the two operations overlap is constant. Therefore, regardless of the level of the override, a substantially constant locus is realized even when the vehicle passes through the corner.
[0059]
FIG. 6 is a diagram for explaining the effect of the override process when the operations represented by the segments sg1 to sg7 and the operations represented by the segments sk1 to sk7 overlap in a synchronous relationship between sg6 and sg7 and sk1 and sk2. is there. Now, assuming an example of an override of 50%, the segments sg1 to sg7 are divided into sh1 to sh15 and output as described with reference to FIG. At this time, the moving amount represented by sg6 is distributed to sh11, sh12, and sh13, and the moving amount represented by sg7 is distributed to sh13, sh14, and sh15.
[0060]
Similarly, the segments sk1 to sk7 are also divided into sk1 to sk15 and output. The moving amount represented by sk1 is distributed to sq1, sq2, and sq3, and the moving amount represented by sk2 is distributed to sq3, sq4, and sq5. When viewed after the override processing, the two operations overlap at sh11 to sh15 and sq1 to sq7.
[0061]
As described above, the digestion speed of the movement amount at the time of the overlap of the movements is reduced equally for both operations (here, half), and the total movement amount to be digested is not changed by the 50% override processing. Such a property does not change even if the override rate is other values.
[0062]
Even when the override is switched during the operation, a constant locus can be similarly maintained by smoothly changing the division ratio of the segment of the filter output and performing the override processing according to the above example.
[0063]
In this case, the new and old override rates are (βN / 100) and (βO / 100), and the acceleration is changed halfway from (βN / 100) 2 to (βO / 100) 2. Therefore, the output of the override processing, which was scheduled to be output by the ITP immediately after the override change command, is adjusted and output so as to be further divided into 1 / [βN / (βO × 100)] times.
[0064]
In order to avoid the influence of the sudden change of the new and old override rates (βN / 100) and (βO / 100), it is preferable to smoothly change the override rate stepwise from (βN / 100) to (βO / 100). . Therefore, in practice, a register for setting the target override value is set in the memory, and the user updates and inputs the new override value βN to this register, thereby changing the current override value to the target override value (here, Then, the process of asymptotically reaching the new override rate βN) is started.
[0065]
In calculating the movement amount in each ITP, n times (n The movement amount is calculated using the values divided into ≧ 2). For example, in the j-th ITP immediately after the update of the override target value, β = βO + jΔβ. Where Δβ = (βN−βO)
/ N, j = 1, 2,... N.
[0066]
(2) Summary of suspension-related processing;
FIG. 7 is a diagram for describing the temporary stop related processing in the present embodiment. Here, as an example, the output of the filter unit represented by the segments sg1 to sg18 (the output after the override processing may be performed) to the servo up to the segment sg4 is completed, and the output of the segment sg5 is completed. Consider a case where a hold command is internally output by the ITP.
[0067]
In this case, as shown in the figure, the data representing the movement amount after the segment sg5 is not output to the servo as it is, but is stored in a predetermined memory (a buffer preset in the memory 35 in FIG. 3). Once stored. However, the segments sg5, sg6, and sg7 corresponding to a predetermined time constant (here, 3ITP) are dynamically processed by the override processing unit, and each axis is decelerated and eventually stopped.
As the dynamic processing for deceleration / stop, the override target value is set to 0 by applying the above-described method of applying the override, and gradually reduced to 0, which is the override target value, n times (n ≧ 2). Can be adopted.
[0068]
In the illustrated example, the segments sg5, sg6, and sg7 are distributed to sw5 to sw9. Eventually, sw5 to sw9 are output to the servo following segments sg1 to sg4 (before holding), and the robot stops when the movement represented by these segments is completed. It should be noted here that the total movement amount digested by sw5 to sw9 representing the deceleration process is smaller than the total movement amount represented by the segments sg5, sg6, and sg7.
[0069]
The surplus movement amount is consumed during the acceleration process when the pause is released and the operation is resumed. That is, when the suspension is released, data representing the movement amount after the segment sg5 is read from the memory and output to the servo while accelerating to the original command speed.
[0070]
In the acceleration process, a value obtained by subtracting sw5 to sw9 digested in the deceleration process from the total movement amount represented by the segments sg5, sg6, and sg7 is digested. For this purpose, by applying the above-described method of applying the override, a process of setting the override target value to the override value before suspension (for example, 100) and gradually increasing the override target value to the override target value in n times can be adopted.
As the dynamic processing, a processing corresponding to gradually increasing the override to 100% in n times (n ≧ 2) by applying the above-described method of applying the override can be adopted.
[0071]
After all, when the operation is resumed, sw10 to sw15 are output to the servo, and then sg8 and thereafter are output. The total movement amount digested by the segments sw5 to sw15 representing the deceleration process and the acceleration process is equal to the total movement amount represented by the segments sg5, sg6, and sg7.
[0072]
By performing such processing before and after the temporary stop, the robot decelerates and stops while maintaining the trajectory when the hold command is output, and accelerates the robot while maintaining the trajectory from there when restarting. It can be shifted to operation.
[0073]
At the time of the hold, it goes without saying that the operation plan data at the time of deceleration stop, the interpolation data, the filter data, and the like are frozen and stored as they are in preparation for the restart of the operation. At the time of the resuming operation, the operation is started from a state where the override is set to 0, and the data stored at the time of the hold is restored. Thereafter, the override is gradually increased while smoothly synchronizing all axes again. As a result, it is possible to perform deceleration stop and restart operations by changing the override while synchronizing all axes while performing processing as if there was no hold up to the operation planning unit, interpolation unit, and filter unit. Will be possible.
[0074]
When performing an emergency stop by an alarm, the output to the servo is immediately stopped without using the above-mentioned temporary stop method as it is, and the robot is stopped as soon as possible. In the example of FIG. 6, sw6 to sw9 forming the deceleration process are not output to the servo.
[0075]
In this case, since the trajectory is deviated due to the emergency stop, the trajectory may return to the original trajectory at a low rate of override (temporary positioning), and then accelerated by applying the above-described override change method. Data for calculating the amount of movement required to return to the original trajectory (in the example of FIG. 6, data of sw6 to sw9 which have not been output to the servo segment due to an emergency stop), data of program speed, etc. Is stored in the memory near the point of emergency stop. Further, various data for determining the operation after returning to the original trajectory are also stored in the memory near the point of emergency stop.
[0076]
The above is the outline of the embodiment. In the following, the processing of the dynamic speed control executed to avoid the trajectory deviation of the robot will be described in more detail by dividing it into an override processing and a pause / operation restart processing. In the description, a case of an override rate of 30% (β = 30) is considered as an example of an override rate different from the override rate of 50% (β = 50).
[0077]
FIG. 8 is a diagram illustrating, in a form slightly different from FIG. 4, a framework of processing performed in the robot controller from the operation plan to the movement command output to the servo during program reproduction, according to the embodiment of the present invention. In this drawing, while the division of the series for each axis operation and the series for orthogonal operation (linear operation, arc operation, etc.) is omitted, the override processing unit with a dynamic shutter is described as a dynamic speed control unit, The memory used in connection with dynamic speed control has been simplified and added to the block display.
[0078]
Referring to FIG. 8, the entire system includes an operation planning unit, an interpolation processing unit, a filter unit, and a dynamic speed control unit, and the output of the dynamic speed control unit is a servo system of each axis (displayed as a motor). Passed to In the processing flow, a memory is interposed on the input side and the output side of the dynamic speed control unit. A large number of register areas are prepared in the memory in advance so as to conform to the processing described below.
[0079]
Each register area is also simply called a memory. Also, the n-th movement command after the filtering process output from the filter unit is denoted by Dn. In the drawing, it is described that the movement command Dn is stored in the memory Mn on the input side of the dynamic speed control unit. Each block described in a vertical line means one unit of memory (buffer register area). It is illustrated that D1 is stored in the input memory M1, D2 is stored in M2, and Dn (n = 1, 2) is stored in Mn.
[0080]
Further, it is described that D2, D2 ', D1, and D1' are stored in the output memories O1 to O4 of the dynamic speed control unit, respectively. Here, D2 'and D1' are values obtained by multiplying D1 and D2 by an override value (β / 100). Details of how to use the input side and output side memories will be described in the following processing description.
[0081]
[Override processing]
FIG. 9 is a flowchart illustrating an override process performed by the dynamic speed control unit. The main points of each step are as follows. Note that i is a labeling index of the interpolation cycle, and the initial value is i = 1. A register for setting a current value β and a target value γ of the override is prepared, and a desired override target value γ0 is set in advance for the latter. As the initial value of the current value β of the override, a value that matches the initially set target value γ0 is automatically set.
[0082]
(Step S1): It is checked whether or not the movement commands Di and Di + 1 are stored in the memories M1 and M2, respectively. If not stored, the process proceeds to step S2, and if stored, the process proceeds to step S3.
[0083]
(Step S2): The movement commands Di and Di + 1 are stored in the memories M1 and M2, respectively, and are set as the movement commands Dm1 and Dm2. Here, m1 and m2 are labels indicating that they are data stored in the memories M1 and M2, respectively.
[0084]
(Step S3): It is checked whether the value of the movement command Mm1 stored in the memory M1 is 0. If yes, go to step S4; if no, go to step S5.
[0085]
(Step S4): The movement command Dm2 stored in the memory M2 is copied to the memory M1 and set as Dm1 (update of the value of the movement command Dm1). Then, the dynamic command Di + 2 next to Di + 1 is read, stored in the memory M2, and set as Dm2 (update of the value of Dm2).
[0086]
(Step S5); A current value β% of the override is determined, and a movement amount Di per interpolation (per ITP) (the height of a segment representing the movement amount) Di is calculated under the determined β value. The method of calculating Di will be described later. The current override value β may change during operation if the target value γ changes. The value of β changes during the operation, for example, at the time of a user input, change by an external signal, temporary stop (hold), temporary stop (hold), or restart of operation after an emergency stop. The process of determining the current value β% of the override will be described later together with the process of temporarily stopping (holding) and subsequently resuming operation.
[0087]
(Step S6): The Di calculated in Step S5 is compared with the movement command Dm1 stored in the memory M1. If Dm1-Di> 0, the process proceeds to step S8; otherwise (Dm1-Di ≧ 0), the process proceeds to step S7.
[0088]
(Step S7): The movement command Dm1 stored in the memory M1 is copied to the memory O1 on the output side. Next, using these Dm1 and Dm2,
Di = Dm1 + Dm2 * μ
Is obtained. Then, from this μ, Di ′ satisfying Di ′ = Dm2 * μ is added to the output memory O1. Further, Dm2 is updated to Dm2 = Dm2−Dm2 * μ, which is copied to the memory M1 to obtain a new Dm1 (update of Dm1).
[0089]
(Step S8): The movement command Di determined in Step S5 is written to the output side memory O1. Further, the movement command Dm1 stored in the memory M1 is updated to a new Dm1 = Dm1-Di.
[0090]
(Step S9): The movement command Do of the output side memory is output to the motor (each axis servo system).
[0091]
(Step S10); A command for stopping the robot, such as hold, temporary stop, emergency stop, operation end command (issued when a new Di output is not from the filter unit and the process of Step S2 cannot be performed), etc. Check whether the signal is output inside the controller. If yes, the process for them (described later) is executed to stop the robot.
If no, the process proceeds to step S11.
[0092]
(Step S11); 1 is added to the index value i of the movement command, and the process returns to step S1.
[0093]
Here, a method of calculating the movement amount Di 'per interpolation (per ITP) when the override (current value) in step S5 is?% Will be described.
[0094]
The following formula is used to calculate the movement amount Di 'so that the speed change can be smoothly obtained even when the movement command Di output from the filter unit is not constant.
[0095]
The movement command Di 'per i-th one interpolation time (ITP) t0 is represented by the following equation (3).
[0096]
Di '= V (i) * t0 (3)
Here, V (i) is the speed when the override in the i-th ITP is 100%. The acceleration A (i) per ITP when the override in the i-th ITP is set to 100% is temporarily expressed by the following equation (4).
[0097]
A (i) = V (i) -V (i-1) (4)
Using this A (i) to smooth the speed transition, the following equation (5) is adopted as a reference equation of the acceleration output at the i-th ITP at present.
[0098]
Aout (i) = − A (i−1) / 2 + 3 * A (i) / 2 (5)
Using this, the following equation (6) is adopted as the speed output at the i-th ITP at present.
[0099]
Figure 0003588063
Here, OVR = β / 100, δ becomes δ = 1 when the output of V (i) is fully output to the servo system, and δ = when the output of V (i) is not fully output to the servo system. It becomes 0.
[0100]
For example, if the override is 100%,
When Vout (i) = 1 * [V (i) + Aout (i) * (0 + 1 / 2−1 / 2) = V (i), a natural result is obtained. In the case of 50% override,
Vout (i) = 0.5 * [V (i) + Aout (i) * (δ + 0.5 / 2−1 / 2) = V (i) / 2 + Aout (i) / 2 * (δ− /)
And
When δ = 1; V (i) / 2−Aout (i) / 8
When δ = 0; V (i) / 2 + Aout (i) / 8
It becomes.
[0101]
The effect of the level of the override value on the trajectory when the path operation including the corner portion is performed while performing the above-described processing will be described with reference to FIGS. 15 and 16 using an example of an override rate of 30%. . As a path operation including a corner portion, as shown in FIG. 14, a linear operation from the position G1 to the position G2 and a linear operation from the position G2 to the position G3 are smoothly connected. The program speeds of both operations are assumed to be equal.
[0102]
The crosses indicate the teaching points G1, G2, G3, and the crosses indicate the position (interpolation position) of the interpolation point corresponding to the movement command finally output to the servo system. The corners are indicated by the symbol A. On the other hand, the range B represents a section of acceleration for starting and a section of deceleration for stopping (positioning).
[0103]
In the case of this example, at the corner portion A, the marks are arranged at regular intervals, and in the acceleration / deceleration section B, the intervals of the marks are gradually enlarged or reduced. Symbols q1, q2, and q3 are interpolation points representing trajectories in the corner portion A, and form a movement section corresponding to the outputs D1 and D2 from the filter portion in the corner portion.
[0104]
Symbols p1, p2, p3, and p4 are interpolation points representing trajectories in the acceleration section B, and form moving sections corresponding to outputs D1 and D2 from the filter section in the acceleration / deceleration section. Although the number of interpolation points (★ marks) actually generated is much larger, the number is simply illustrated in a small number for display.
[0105]
Referring to FIG. 15, as shown in the upper left part of the figure, the locus of the corner A when the robot is operated with the override of 100% is as shown in FIG. 14, and the outputs D1 and D2 from the filter are as shown in FIG. Are obtained through the interpolation points q1, q2, q3 corresponding to.
[0106]
On the other hand, the locus of the corner A when the robot is operated with the override of 30% is as shown in the upper right part of FIG. By the above-described override processing (β = 30), the interpolation points q1, q2, and q3 corresponding to the outputs D1 and D2 from the filter unit are converted into a larger number of interpolation points qd1 to qd9 (signs are partially shown). Is done. The calculation formula for each section is as shown in the figure.
[0107]
What is important here is that these interpolation points qd1 to qd9 are on the trajectory when the original override is 100%. This property is similarly guaranteed even if the override rate is not 30%. In general, a number of interpolation points that are inversely proportional to the override value are output on the basis of the interpolation point when the override value is 100%, and are formed so as to be arranged on the locus when the override value is 100%. Therefore, the same trajectory can be obtained even at the corner portion regardless of the level of the override value.
[0108]
In the lower left and lower right portions of FIG. 15, the state in which the movement commands D1 and D2 at the filter unit output stage are divided and output is displayed in segments. When the vehicle passes through the corner at a constant speed as in this example, the height of each segment is constant. If the program speeds of the two operations for forming the corner portion are different, the height of each segment naturally changes stepwise. Even in such a case, the trajectory created by the interpolation points is not affected by the override rate.
[0109]
Next, taking the acceleration section as an example, the trajectory in the acceleration / deceleration section will be considered. Referring to FIG. 16, as shown in the upper left part of the figure, the trajectory of the acceleration / deceleration unit B (represented by the acceleration unit here) when the robot is operated with the override of 100% is as shown in FIG. 14. The acceleration toward the program speed is performed along a locus passing through the interpolation points p1, p2, p3, and p4 corresponding to the outputs D1, D2, and D3 from the filter unit.
[0110]
The trajectory of the acceleration unit B when the robot is operated with the override of 30% is not different from the case of the override of 100% as shown in the upper right part of FIG. However, by the above-described override processing (β = 30), the interpolation points p1, p2, p3, and p4 corresponding to the outputs D1, D2, and D3 from the filter unit are changed to a larger number of interpolation points pd1 to qd11 (the sign is one. Part only). The calculation formula for each section is as shown in the figure.
[0111]
Such a property is similarly guaranteed even if the override rate is not 30%. In general, a number of interpolation points that are inversely proportional to the override value are output on the basis of the interpolation point when the override value is 100%, and are formed so as to be arranged on the locus when the override value is 100%.
[0112]
In the lower left and lower right portions of FIG. 15, the manner in which the movement commands D1, D2, and D3 in the filter unit output stage are divided and output is displayed in segments. In the acceleration / deceleration section, the height of each segment changes stepwise. This change represents a process in which the speed at the time of 100% override is reduced to 30% (generally, β%) to accelerate smoothly. The final reaching speed of acceleration is naturally 30% (generally β%) of the program speed.
[0113]
When the override is changed during the operation of the robot, the override asymptotic / arrival processing shown in the flowchart of FIG. 17 is performed. This process is also used in a hold process and an operation restart process described later.
[0114]
The main points of each step of the override asymptotic / arrival processing are as follows.
(Step L1); The override target value is updated to the new value βN.
(Step L2); Wait for the fth ITP from the next ITP after the update of the override target value. f is a positive integer value set to an appropriate size.
(Step L3); Update the override current value from β to β + Δβ. Δβ is determined in advance, for example, as Δβ = 1 (%), or calculated by the following equation (7).
[0115]
Δβ = (βN−β just before updating the override target value) / n (7)
Here, n is the number of updates required until the current override value matches the target value, and is set to, for example, n = 10, or separately determined from a condition (see the description of the hold processing described later). By performing such processing, β in the flowchart of FIG. 9 is changed stepwise toward a new target value.
[0116]
[Hold processing]
FIG. 10 is a flowchart illustrating a hold process performed by the dynamic speed control unit. The hold processing is executed, for example, when the operator inputs a temporary stop command to the robot controller. The main points of each step are as follows.
[0117]
(Step H1); It is checked for each ITP whether a hold command has been output inside the robot controller. If output, the process proceeds to step H2.
(Step H2): The dynamic control unit controls the deceleration override value OVd from the current speed V so that the speed smoothly becomes 0 after the time t1 has elapsed.
[0118]
(Step H3): It is checked for each ITP whether or not the robot has stopped. After confirming the stop, the process proceeds to step H4.
[0119]
(Step H4): The current position (stop position) at that time, the data of the movement command in the filter, and other data related to the operation of the robot are stored in a memory (a register for storing at the time of holding), and the holding process is completed. I do.
For the control of the deceleration override value OVd in the process of step H2, the override asymptotic / arrival process shown in the flowchart of FIG. 17 is used.
[0120]
That is, the update target value βN of the override in step L1 is set to βN = 0. Further, s1 is divided by η (η is an appropriate positive integer other than 1) with the ITP conversion value of time t1 as s1, and f in step L2 is set to f = s1 / η. Then, n in the equation (7) for calculating Δβ in step L3 is calculated using βN = 0 and n = η.
[0121]
FIG. 12 shows a change in speed when the above-described hold processing is performed. The override gradually goes to 0, but the movement command needs to be completely output to the servo system in order to fully reflect the actual speed. Therefore, the speed transition does not drop linearly. Further, in order to make the operation smoother, the value of Δβ may not be a fixed value but may be gradually changed according to a smooth function (for example, an exponential function) to obtain a smooth transition of acceleration.
[0122]
[Operation restart processing]
FIG. 11 is a flowchart illustrating a process of resuming operation performed by the dynamic speed control unit. The operation restart processing is executed when, for example, an operation restart command is input to the robot controller after the suspension. The main points of each step are as follows.
[0123]
(Step H11): The stop position stored in the memory is read.
(Step H12): The robot is operated from the current robot position (for example, moving by jog feed) to the stop position read in Step H11.
(Step H13): Confirmation of completion of the operation in Step H12. Upon confirmation, the process proceeds to step H14.
(Step H14); Data necessary for the resuming operation is read out from the memory, read back to the operation planning unit, the interpolating unit, and the filter unit, and the state immediately before the hold is restored.
[0124]
(Step H15): The interpolation operation is performed from the stop position in the same manner as before the hold. At the same time, the dynamic override unit controls the acceleration override value OVa from the current override value (β = 0) so that the speed smoothly returns to the original speed v after a lapse of time t2.
The control of the acceleration override value OVa in the processing of step H15 uses the override asymptotic / arrival processing shown in the flowchart of FIG.
[0125]
That is, the update target value βN of the override in step L1 is set to βN = the value of β immediately before the hold. Further, s2 is divided by η (η is an appropriate positive integer other than 1) with the ITP conversion value of time t2 as s2, and f in step L2 is set to f = s2 / η. Then, n in the equation (7) for calculating Δβ in step L3 is calculated by βN = the value 0 of β immediately before the hold, and n = η.
[0126]
FIG. 13 shows a transition of the speed when the process of step H15 is performed. The override gradually goes from 0 to the original value, but it is necessary to completely output the movement command to the servo system in order to fully reflect the actual speed. Therefore, the speed transition does not rise linearly. Further, in order to make the operation smoother, the value of Δβ may not be a fixed value but may be gradually changed according to a smooth function (for example, an exponential function) to obtain a smooth transition of acceleration.
[0127]
【The invention's effect】
According to the present invention, it is possible to prevent a trajectory shift that has occurred in the related art in connection with the level of the override and the switching or temporary stop during the operation of the override. Further, through this, it is possible to improve the efficiency, reliability, and safety of the trajectory checking work by the test run after teaching. Further, since the trajectory deviation due to the switching or the temporary stop during the operation of the override is eliminated, the accuracy and safety of the robot operation are improved.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining a framework of processing of a conventional method which has been performed inside a robot control device from an operation plan to a movement command output to a servo during program reproduction.
FIG. 2 is a view for explaining the reason why a trajectory shift occurs using a simple example in relation to the processing of the conventional method shown in FIG. 1;
FIG. 3 is a main block diagram illustrating a hardware configuration of a robot system including a robot control device to which the present invention is applied;
FIG. 4 is a diagram illustrating, in a form similar to FIG. 1, a framework of processing performed in the robot controller from an operation plan to a movement command output to a servo at the time of reproducing a program in the embodiment of the present invention.
FIG. 5 is a diagram illustrating an example of an override process in which a filter unit output is overridden by 50%.
FIG. 6 is a diagram for explaining the influence of the override process when the operations represented by the segments sg1 to sg7 and the operations represented by the segments sk1 to sk7 overlap in a synchronous relationship between sg6 and sg7 and sk1 and sk2. is there.
FIG. 7 is a diagram for describing temporary stop related processing in the present embodiment.
8 is a diagram illustrating, in a form slightly different from FIG. 4, a framework of processing performed in the robot controller from an operation plan to a movement command output to a servo during program reproduction according to the embodiment of the present invention.
FIG. 9 is a flowchart illustrating a point of an override process performed by a dynamic speed control unit.
FIG. 10 is a flowchart illustrating a main point of a hold process executed at the time of a temporary stop in the dynamic speed control unit.
FIG. 11 is a flowchart illustrating a main point of a process executed by the dynamic speed control unit when the operation is resumed after the suspension.
FIG. 12 is a diagram showing a change in speed when a hold process is performed.
FIG. 13 is a diagram showing a speed transition in a case where a process of gradually increasing the override in resuming the operation is performed.
FIG. 14 is a diagram showing a route operation assumed as a premise for the description of FIGS. 15 and 16;
FIG. 15 is a diagram illustrating an influence of a level of an override value on a trajectory in a corner portion in the path operation illustrated in FIG. 14, using an example of an override rate of 30%.
16 is a diagram illustrating an influence of a level of an override value on a trajectory in an acceleration / deceleration unit with respect to the path operation illustrated in FIG. 14, using a case of an override rate of 30% as an example.
FIG. 17 is a flowchart illustrating override asymptotic / arrival processing.
[Explanation of symbols]
1 Arm tip
10 hands
30 Robot controller
31 Host CPU
32 Shared RAM
33 Servo CPU
34 Servo amplifier
35 memory
36 Teaching operation panel interface
38 I / O device
37 Teaching operation panel
RB robot

Claims (10)

ロボットの各軸を駆動するサーボモータへ移動指令を出力するためのソフトウェア手段を備えたロボット制御装置であって、
前記ソフトウェア手段は、ロボットの動作目標位置までの移動量を求め、これをある周期で補間処理し、前記補間処理された出力を加減速制御のためにフィルタリング処理する手段と、
前記フィルタリング処理後の移動指令を入力とし、指定された各軸共通の指令オーバライド値に応じて前記移動指令を修正する動的速度制御手段とを持ち、
前記動的速度制御手段は、指令オーバライド値をβ%(0≦β≦100)とした時に、前記移動指令に対し、速度が(β/100)倍、また加速度が(β/100) 倍となるような移動指令を出力する手段を含むことを特徴とする、前記ロボット制御装置。
A robot controller having software means for outputting a movement command to a servomotor that drives each axis of the robot,
The software means obtains a movement amount of the robot to an operation target position, interpolates the movement amount in a certain cycle, and performs a filtering process on the interpolated output for acceleration / deceleration control.
With the movement command after the filtering process as an input, having a dynamic speed control means for correcting the movement command according to a designated command override value common to each axis,
It said dynamic rate control means, a command override value when the β% (0 ≦ β ≦ 100 ), said relative movement command, velocity (β / 100) times, also acceleration (β / 100) 2-fold The robot control device according to claim 1, further comprising: a unit that outputs a movement command that:
目標オーバライド値が現在のオーバライド値と異なる場合に、前記動的速度制御手段に対する指令オーバライド値を、現在のオーバライド値から目標オーバライド値まで滑らかに変化させる指令オーバライド計算手段を持つことを特徴とする、請求項1に記載のロボット制御装置。When the target override value is different from the current override value, it has a command override calculation means for smoothly changing the command override value for the dynamic speed control means from the current override value to the target override value. The robot control device according to claim 1. プログラム実行時にロボットを一時停止させる場合に、前記目標オーバライド値を0に設定し、前記指令オーバライド計算手段により、前記動的速度制御手段に対する指令オーバライド値を現在オーバライド値から0まで滑らかに変化させる事によりロボットを減速停止させることを特徴とする、請求項2に記載のロボット制御装置。When temporarily stopping the robot during execution of the program, the target override value is set to 0, and the command override value for the dynamic speed control means is smoothly changed from the current override value to 0 by the command override calculation means. The robot control device according to claim 2, wherein the robot is decelerated and stopped by (1). プログラム実行時にロボットを非常停止させる場合に、前記目標オーバライド値と前記指令オーバライド値を共に0に設定し、移動指令出力を瞬時に0とし、ロボットを即時停止させることを特徴とする、請求項2に記載のロボット制御装置。3. The method according to claim 2, wherein, when the robot is emergency-stopped during execution of the program, the target override value and the command override value are both set to 0, the movement command output is instantaneously set to 0, and the robot is immediately stopped. The robot control device according to item 1. プログラムラム実行時にロボットを一時停止、または非常停止させた後、停止後に動作を再開させる場合に、前記指令オーバライド計算手段において、指令オーバライド値を0から、前記目標オーバライド値まで滑らかに変化させる事によりロボットを加速させることを特徴とする、請求項2に記載のロボット制御装置。In the case where the robot is temporarily stopped or an emergency stop is performed during execution of the program ram, and the operation is resumed after the stop, the command override calculating means can smoothly change the command override value from 0 to the target override value. The robot control device according to claim 2, wherein the robot is accelerated. 前記指令オーバライド計算手段において、現在のオーバライド値から、目標オーバライド値まで、指定の分割回数に分割して段階的に前記動的速度制御手段に対する指令オーバライド値を変更させることを特徴とする、請求項2乃至請求項5のいずれか1項に記載のロボット制御装置。The command override calculating means, wherein the command override value for the dynamic speed control means is changed stepwise by dividing into a specified number of divisions from a current override value to a target override value. The robot control device according to any one of claims 2 to 5. 前記指令オーバライド計算手段において、現在のオーバライド値から、目標オーバライド値まで、指数関数を用いる事により、前記動的速度制御手段に対する指令オーバライド値をなめらかに変化させることを特徴とする、請求項2乃至請求項5のいずれか1項に記載のロボット制御装置。3. The command override calculation means, wherein an instruction function for the dynamic speed control means is smoothly changed by using an exponential function from a current override value to a target override value. The robot control device according to claim 5. 前記一時停止時点付近で、前記ロボット制御装置内部で動作データを保存し、動作再開時に前記保存された動作データを利用するようにしたことを特徴とする、請求項3乃至請求項5のいずれか1項に記載のロボット制御装置。6. The operation data stored in the robot controller near the time of the temporary stop, and the stored operation data is used when the operation is resumed. 2. The robot control device according to claim 1. 前記動作プログラムに基づく前記動作計画は、少なくとも一つの動作区間について直交動作を行なうための直交動作計画を含んでいることを特徴とする、請求項1乃至請求項7のいずれか1項に記載のロボット制御装置。8. The operation plan according to claim 1, wherein the operation plan based on the operation program includes an orthogonal operation plan for performing an orthogonal operation for at least one operation section. Robot controller. 前記動作プログラムに基づく前記動作計画は、少なくとも一つの動作区間について各軸動作を行なうための各軸動作計画を含んでいることを特徴とする、請求項1乃至請求項7のいずれか1項に記載のロボット制御装置。The method according to claim 1, wherein the operation plan based on the operation program includes an axis operation plan for performing each axis operation for at least one operation section. A robot controller as described.
JP2001213995A 2001-07-13 2001-07-13 Robot controller Expired - Fee Related JP3588063B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001213995A JP3588063B2 (en) 2001-07-13 2001-07-13 Robot controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001213995A JP3588063B2 (en) 2001-07-13 2001-07-13 Robot controller

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP36230097A Division JP3673383B2 (en) 1997-12-12 1997-12-12 Robot control device

Publications (2)

Publication Number Publication Date
JP2002082705A JP2002082705A (en) 2002-03-22
JP3588063B2 true JP3588063B2 (en) 2004-11-10

Family

ID=19048890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001213995A Expired - Fee Related JP3588063B2 (en) 2001-07-13 2001-07-13 Robot controller

Country Status (1)

Country Link
JP (1) JP3588063B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9517556B2 (en) 2012-06-29 2016-12-13 Mitsubishi Electric Corporation Robot control apparatus and robot control method
JP6017509B2 (en) * 2014-10-22 2016-11-02 ファナック株式会社 Numerical control device that smoothly changes feed rate when operation is stopped
CN111267080A (en) * 2020-02-18 2020-06-12 上海柴孚机器人有限公司 Method for automatically correcting path of industrial robot
CN116330299B (en) * 2023-05-26 2023-09-01 浙江工业大学 Industrial robot compliant motion control method based on acceleration smoothing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63273108A (en) * 1987-04-30 1988-11-10 Fanuc Ltd Speed controller
JPH05324046A (en) * 1992-05-18 1993-12-07 Mitsubishi Electric Corp Multi-system numerical control method and apparatus

Also Published As

Publication number Publication date
JP2002082705A (en) 2002-03-22

Similar Documents

Publication Publication Date Title
JP3673383B2 (en) Robot control device
CN103064344B (en) Non uniform rational B spline (NURBS) interpolation based speed smooth control method
JP4917252B2 (en) Arc welding equipment
CN101493687B (en) NURBS curve self-adaptive subsection interpolation method for real-time forward-looking full acceleration and deceleration control
CN102650867B (en) Numerical controller having speed control function for multi-axis machining device
US20100305751A1 (en) Power consumption estimation apparatus
US8560112B2 (en) Numerical controller with function to correct movement path of machining program
US20140195037A1 (en) Numerical control device
CN103970139A (en) Robot continuous point position motion planning method and motion controller thereof
CN101799660B (en) Control equipment and method for manipulator
JPH07152419A (en) Method and system for planning of route in rectangular coordinate space
WO2004108365A1 (en) Teaching data preparing method for articulated robot
JP3476287B2 (en) Curve interpolation method for speed control during robot connection operation
JP3537229B2 (en) Robot control method
GB2027938A (en) Improved off-line teach assist apparatus and on-line control apparatus
JP3588063B2 (en) Robot controller
JPH07261821A (en) Robot track planning method taking deflection due to load into consideration
Guo et al. Near-time optimal feedrate planning for the NURBS curve considering interpolation error constraints
CN100404211C (en) Teaching data preparation method for articulated robot
CN121245851A (en) Track planning method, device, robot and storage medium
JP2007216232A (en) Welding robot controller
WO1995000890A1 (en) Method for teaching position to robot, and control apparatus
JP3210301B2 (en) Numerical control unit
CN117008535B (en) A method and apparatus for flight cutting control of a laser cutting CNC system
JP3236579B2 (en) Numerical control device and curve path interpolation method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040603

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040727

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040811

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070820

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080820

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090820

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100820

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110820

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110820

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120820

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120820

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130820

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees