JP3673383B2 - ロボットの制御装置 - Google Patents
ロボットの制御装置 Download PDFInfo
- Publication number
- JP3673383B2 JP3673383B2 JP36230097A JP36230097A JP3673383B2 JP 3673383 B2 JP3673383 B2 JP 3673383B2 JP 36230097 A JP36230097 A JP 36230097A JP 36230097 A JP36230097 A JP 36230097A JP 3673383 B2 JP3673383 B2 JP 3673383B2
- Authority
- JP
- Japan
- Prior art keywords
- robot
- override
- output
- value
- processing
- 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
Links
- 238000012545 processing Methods 0.000 claims description 94
- 238000000034 method Methods 0.000 claims description 80
- 230000008569 process Effects 0.000 claims description 72
- 230000001133 acceleration Effects 0.000 claims description 35
- 238000001914 filtration Methods 0.000 claims description 13
- 230000015654 memory Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 21
- 230000007704 transition Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 239000012636 effector Substances 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000001172 regenerating effect Effects 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000029087 digestion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/406—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
- G05B19/4067—Restoring data or position after power failure or other interruption
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
- Control By Computers (AREA)
Description
【発明の属する技術分野】
本発明は産業用ロボット(以下、単に「ロボット」と言う。)を制御するための制御装置に関し、更に詳しく言えば、オーバライド指令時や一時停止前後におけるロボット軌跡精度を向上させるようにしたロボット制御装置に関する。
【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まで低下させる処理を行なってロボットを減速させ、通常動作で描くツール先端点の軌跡に沿って前記減速が行なわれて停止に至るようにロボットを制御することが出来る。
【0027】
また、プログラム実行時にロボットを一時停止させた後、停止後に動作を再開させた場合には、オーバライド値を0から上昇させる処理を行なってロボットを通常動作で描くツール先端点の軌跡に沿って加速し、一時停止前と同じ速度と同じ軌跡を以て動作する状態に至るようにロボットを制御することが出来る。
【0028】
更に、プログラムラム実行時にロボットを非常停止させた後、停止後に動作を再開させた場合には、通常動作で描くツール先端点の軌跡上に戻るための移動を表わす移動指令をサーボモータへ出力する処理を行なって通常動作で描くツール先端点の前記軌跡上に戻り、その後、オーバライド値を所定値まで上昇させる処理を行なってその軌跡に沿って加速し、非常停止前と同じ速度と同じ軌跡を以て動作する状態に至るようにロボットを制御することも出来る。
【0029】
以上のような制御を可能にするために、ロボット制御装置内部でオーバライドの目標値が保持され、オーバライド現在値をオーバライドの前記目標値に向けて漸次変更することによってオーバライド値の変更が行ない得るようになっていることが好ましい。
【0030】
また、一時停止時点付近では、ロボット制御装置内部で動作データを保存し、動作再開時に前記保存された動作データを利用することが好ましい。
【0031】
なお、動作プログラムに基づいてなされる動作計画は、動作形式として直線動作が指定されている動作区間については直交動作計画になり、動作形式として各軸動作が指定されている動作区間については各軸動作計画となる。本発明では、直交動作、各軸動作いずれの動作形式による動作に関しても、オーバーライド値の高低や一時停止/動作再開に伴う軌跡のずれを解消出来る。
【0032】
【発明の実施の形態】
図3は本発明が適用されるロボット制御装置を含むロボットシステムのハードウェアの構成を例示した要部ブロック図である。同図に示したように、全体を符号30で指示したロボット制御装置は、エンドエフェクタとしてハンド10をアーム先端部1に取り付けたロボットRBを制御する。ロボットRBはここでは6軸ロボットとする。エンドエフェクタ(ハンド10)の位置を代表する点であるツール先端点TCPは、ハンド10の中心部に設定されている。
【0033】
ロボット制御装置30はホストCPU31、共有RAM32、サーボCPU33、サーボアンプ34、メモリ35、教示操作盤用インターフェイス36並びに一般外部装置用の入出力装置38を備えている。メモリ35は、システムプログラムが格納されたROM、データの一時記憶用のRAM、及びシステム(ロボットRBの動作を定めた各種プログラムデータが格納された不揮発性メモリを含んでいる。
【0034】
教示操作盤用インターフェイス36に接続された教示操作盤37は、プログラムデータの入力、修正、登録や、手動送り((ジョグ送り)指令、再生運転指令等のマニュアル入力に利用される。また、外部装置用入出力装置38にはロボットRBのメカニカルブレーキの他、アプリケーションに応じた各種外部装置(例えば、溶接用電力電源装置)が接続される。
【0035】
再生運転あるいは手動送り(ジョグ送り)の実行時には、ホストCPU31はロボットRBの各軸に対する移動指令を作成し、共有RAM32へ出力する。サーボCPU33はこれを所定の短周期で読み出し、ロボット各軸の位置検出器(パルスコーダ)から送られてくる位置信号(フィードバック)信号に基づいてサーボ処理を実行し、各軸のサーボアンプ34に電流指令を出力し、ロボット各軸のサーボモータを駆動する。また、サーボCPU33はロボット各軸の位置検出器(パルスコーダ)から送られてくる位置信号(フィードバック)信号に基づいてロボット各軸の現在位置を周期的に共有RAM32に書き込む。
【0036】
上述した構成と機能は、通常のロボットシステムのそれと特に変わるところはない。本システムで用いられているロボット制御装置30が従来のものと異なるのは、ホストCPU31がプログラムデータを読み込んでから、ロボットRBの各軸に対する移動指令を作成するまでの処理過程が改良され、前述した諸要因(オーバライドの高低、オーバライドの動作中の切換、一時停止の前後処理)で発生するロボットの軌跡ずれが回避出来るようになっていることにある。改良されたプログラムデータ及び関連設定値は、メモリ35に格納されている。以下、この改良点を中心に説明する。
【0037】
図4は、本発明の実施形態について、プログラム再生時に動作計画からサーボへの移動指令出力までにロボット制御装置内部で行なわれる処理の枠組みを図1と同様の形式で説明する図である。
【0038】
図4に示した処理の枠組み全体は、従来と同様に、動作計画部と、補間処理部と、フィルタ部を備え、それぞれが各軸動作用のブロックと直交動作用のブロックを有し、各部は各軸動作用の系列と直交動作(直線動作、円弧動作等)用の系列に2分することが出来る。
【0039】
動作計画部は、動作プログラムの指定内容(移動目標位置、運動形式、プログラム速度など)に従ってロボットの動作計画を作成する部分で、動作プログラムで指定された運動形式が各軸動作であれば各軸動作計画部で動作計画が作成され、動作プログラムで指定された運動形式が直交動作(直線動作、円弧動作等)であれば直交動作計画部で動作計画が作成される。
【0040】
補間処理部では、この指令遠度出力を受けて所定の計算処理周期(ITP)毎に補間処理が各軸上あるいは直交座標系上で行なわれ、ITP毎の移動量が計算され、出力される。続くフィルタ部では、加減速制御のために補間処理部の出力に対して所定の時定数でフィルタリングが行なわれる。各軸補間処理部からの出力は、各軸フィルタ処理部でフィルタリング処理される。
【0041】
以上のブロック構成は従来と共通したものであるが、オーバライドを考慮する段階が従来とは基本的に異なっている。即ち、前述したように、従来の処理においては、オーバライドは動作計画の処理の中で考慮され、オーバライド値を乗じた後の出力が動作シャッタを介して補間処理部に渡されていたのに対し、本実施形態では本発明の特徴に従い、フィルタ部の後段に設けられている。
また、それに伴って動作シャッタのブロックもフィルタ部の後段に移されている。
【0042】
オーバライドはこの動作シャッタ付のオーバライド処理部(動的速度制御部とも言う。以下、同じ。)で考慮され、フィルタ部の出力にオーバライド(百分率)を乗じたものが、各軸(J1〜J6)のサーボへ分配・出力される。直交補間処理部からの出力は、直交フィルタ処理部でフィルタリング処理され、逆変換を経て、各軸(J1〜J6)のサーボへ分配・出力される。直交補間処理部からの出力は、各軸への分配に際して逆変換の処理を受ける。
【0043】
再生動作中にロボット制御装置内部で一時停止の指令が出力された場合には、補間処理部ではなく、動作シャッタのオフ反転によりオーバライド部(フィルタ部の出力)にホールドがかけられる。
【0044】
本実施形態の特徴をなす処理を、オーバライド関連処理と一時停止関連処理に分けてその概略を述べれば、次のようになる。
(1)オーバライド関連処理の概略;
本実施形態では、図4の下半部に示したように、動作計画部ではオーバライドは考慮されず、プログラム速度通りの入力に対して補間処理が行なわれる。補間処理後の出力は続くフィルタ部で所定の時定数の下でフィルタリング処理される。ここまでの段階では、処理がオーバライドに左右される余地が無いことが明らかである。従って、オーバライドが高くても低くても、また、動作途中でオーバライドの率が切り換えられても、フィルタ部の出力に全く影響はない。
【0045】
続くオーバライドの処理では、フィルタ部の出力を次の条件式(1)、(2)を満たすように修正する。なお、オーバライド値をβ%(0≦β≦100)、フィルタ部出力が表わす速度をvflout 加速度をαflout 、オーバライド処理後の出力が表わす速度をvovout 、加速度をαovout で表記する。
αovout =αflout ×(β/100)2 ・・・(1)
vovout =vflout ×(β/100) ・・・(2)
図5は、オーバライドの処理をフィルタ部出力に50%のオーバライドをかけた場合を例にとって説明する図である。オーバライド処理では、全軸同期させながら、指令を分割して出力が生成される。今、仮にフィルタ部出力を7個のセグメントsg1〜sg7(7個の移動指令)で表わすと、それらセグメントsg1、sg2・・・sg7は、15ITPを使って、計15個のセグメントに分割されて出力される。
【0046】
例えば、sg1は、sh2で半分出力され、sh1とsh3で1/4づつ出力される。また、sg4は、sh8で半分出力され、sh7とsh9で1/4づつ出力される。出力時の各セグメントshは、両端部を除いて一般には、複数のフィルタ部出力のセグメントsgに由来する移動量が重なったものとなる。今、sg1、sg2、sg3に対応する移動量がベクトルm1、m2、m3で表される場合、それらに由来する出力のセグマントsh1〜sh5は図示したようなベクトルn1〜n5で表わされるような移動量を表わすことになる。経路としては、オーバライドが低い程滑らかさが増した軌跡が得られるが、オーバライド処理の前後で軌跡の基本ラインは変化しない。
【0047】
オーバライド処理における各ITP毎の移動量(出力セグメント=1ITP当りの移動量で速度瞬時値に相当)の計算式については後述するが、要点は次の通りである。
1−1.加減速処理を行なったフィルタ部の出力の各移動量(入力セグメント)に対してオーバライド率(β/100)を乗じた移動量を計算する。
1−2.上記1−1.で計算された移動量が過大な場合(そのまま出力したのでは上記式(1)、(2)の左辺が過大となって等式を成立させられない場合)には、過剰分を差し引いて出力する。なお、最初のITPでは、上記1−1.で計算された移動量では移動量が小さ過ぎて上記式(1)、(2)を満たせなくなるというケースは生じない(β≦100なので、上記式(1)、(2)の左辺が過小になることはない)。
【0048】
2.次回ITPでは、未出力の移動量に対して再度オーバライド率(β/100)を乗じた移動量を計算する。但し、それでは移動量が不足する場合(上記式(1)、(2)を満たせない場合)には、不足分を足して出力する。不足分の出力は、古い移動指令(入力セグメント)の未出力分を優先して選ぶ。2回目以降のITPでは、未出力の移動量に対して再度オーバライド率(β/100)を乗じる上記計算で移動量が過剰になることはない。
【0049】
3.更にその次のITPでは、未出力の移動量が存在する移動指令について、それぞれ再度オーバライド率(β/100)を乗じた移動を出力する。それでは移動量が不足する場合(上記式(1)、(2)を満たせない場合)には、不足分を足して出力する。不足分の出力は、古い移動指令(入力セグメント)の未出力分を優先して選ぶ。以下、同様の処理を繰り返し、全移動指令の全移動量を出力したら処理を終了する。
【0050】
このような処理では、加速に使われる移動量、加速部の移動量、減速部の移動量はほぼ一定になる。この事は、オーバライドが変わっても、2つの動作が重なる時の重なり量が一定になることを意味している。従って、オーバライドの高低によらず、コーナ部通過時についてもほぼ一定の軌跡が実現されることになる。
【0051】
図6は、セグメントsg1〜sg7で表わされる動作と、セグメントsk1〜sk7で表わされる動作が、sg6、sg7とsk1、sk2が同期する関係で重なり合った場合について、オーバライド処理の影響を説明する図である。今、例としてオーバライド50%を考えると、図5で説明したように、セグメントsg1〜sg7は、sh1〜sh15に分割して出力される。その際、sg6で表わされる移動量はsh11、sh12、sh13に分配され、sg7で表わされる移動量はsh13、sh14、sh15に分配される。
【0052】
同様に、セグメントsk1〜sk7も、sk1〜sk15に分割して出力される。そして、sk1で表わされる移動量はsq1、sq2、sq3に分配され、sk2で表わされる移動量はsq3、sq4、sq5に分配される。オーバライド処理後で見ると、2つの動作はsh11〜sh15とsq1〜sq7で重なり合うことになる。
【0053】
このように、動作の重なりにおける移動量の消化速度は両動作均等に低下しており(ここでは半分)、且つ、消化される総移動量はオーバライド50%の処理によって変化していない。このような性質は、オーバライドの率が他の値でも変わらない。
【0054】
オーバライドが動作途中で切り換えた場合も、フィルタ部出力のセグメントの分割比率を滑らかに変えて上記例に準じてオーバライドの処理を行なうことにより、同様に、一定の軌跡を保つ事が可能である。
【0055】
この場合、新旧オーバライド率を(βN /100)、(βO /100)として、加速度が(βN /100)2 から(βO /100)2 に途中変更される。そのために、オーバライド変更指令直後のITPで出力予定だったオーバライド処理出力は、更に1/[βN /(βO ×100)]回に振り分けるように調整して出力される。
【0056】
新旧オーバライド率(βN /100)、(βO /100)の急変の影響を避けるためには、オーバライド率を(βN /100)から(βO /100)に段階的に滑らかに変えていくことが好ましい。そのために、実際には、目標オ一バライド値を設定するレジスタをメモリ内に設定しておき、ユーザがこのレジスタに新オーバライド値βN を更新入力することで、現在オーバライド値を目標オーバライド値(ここでは新オーバライド率βN )へ漸近、到達させる処理が開始される。
【0057】
各ITPにおける移動量の計算にあたっては、オーバライド目標値が更新された直後のITPから、オーバライド値として、旧オーバライド目標値(βO )のオーバライド目標値(βN )の間を段階的にn回(n≧2)に区切った値を使用して移動量を計算する。例えば、オーバライド目標値が更新された直後からj回目のITPではβ=βO +jΔβとする。但し、Δβ=(βN −βO )
/n、j=1,2・・・nである。
【0058】
(2)一時停止関連処理の概略;
図7は、本実施形態における一時停止関連処理について説明するための図である。ここでは、1例として、sg1〜sg18のセグメントで表わされるフィルタ部出力(オーバライド処理後の出力であっても良い)について、セグメントsg4までのサーボへの出力が完了し、セグメントsg5の出力のためのITPでホールド指令が内部出力された場合を考える。
【0059】
この場合、図示されているように、セグメントsg5以降の移動量を表わすデータは、そのままサーボへ出力されることはなく、所定のメモリ(図3におけるメモリ35内に予め設定されるバッファ)内に一旦格納される。但し、所定の時定数(ここでは3ITP)に対応するセグメントsg5、sg6、sg7については、オーバライド処理部で動的に処理され、各軸を減速させ、やがて停止させる。
減速・停止のための動的処理としては、上述のオーバライドのかけ方を応用して、オーバライド目標値を0とし、徐々にオーバライド目標値である0までn回(n≧2)に分けて低下させる処理が採用出来る。
【0060】
図示した例では、セグメントsg5、sg6、sg7がsw5〜sw9に分配されている。結局、サーボには、セグメントsg1〜sg4(ホールド前)に続いて、sw5〜sw9が出力され、これらセグメントで表わされる移動が完了した時点でロボットは停止する。ここで注意すべきことは、減速過程を表わすsw5〜sw9で消化される総移動量は、セグメントsg5、sg6、sg7が表わす全移動量より小さいことである。
【0061】
余った移動量は、一時停止を解除して動作を再開する際に加速過程の中で消化される。即ち、一時停止を解除時には、メモリからセグメントsg5以降の移動量を表わすデータを読み出し、元の指令速度まで加速を行ないながらサーボへ出力する。
【0062】
加速過程では、セグメントsg5、sg6、sg7が表わす全移動量の内、減速過程で消化されたsw5〜sw9を差し引いたものが消化される。そのために、上述のオーバライドのかけ方を応用して、オーバライド目標値を一時停止前のオーバライド値(例えば100)とし、徐々にオーバライド目標値までn回に分けて上昇させる処理が採用出来る。
【0063】
動的処理として、上述のオーバライドのかけ方を応用して、オーバライドをn回(n≧2)に分けて徐々に100%まで上昇させるに相当する処理が採用出来る。
【0064】
結局、動作再開時、サーボには、sw10〜sw15が出力され、次いで、sg8以降が出力される。減速過程と加速過程を表わすセグメントsw5〜sw15で消化される総移動量は、セグメントsg5、sg6、sg7が表わす全移動量と等しくなる。
【0065】
一時停止の前後でこのような処理を行なうことで、ホールド指令出力時に軌跡を保ったままロボットを減速し、停止にさせ、再動作時にはそこからやはり軌跡を保ったままロボットを加速し、本来の動作に移行させることが出来る。
【0066】
ホールド時には、動作再開に備えて、減速停止時の動作計画データ、補間データ、フィルタデータ等がそのまま凍結して保存されることは言うまでもない。再開動作時には、オーバライドを0に設定した状態から出発し、ホールド時に保存したデータを復帰させる。その後、再び滑らかに全軸同期させながらオーバライドを徐々に上げていく。これにより、動作計画部、補間部及びフィルタ部までは、あたかもホールドがなかったかのように処理を行いつつ、オーバライドを全軸同期させながら変更することにより、減速停止、及び再開動作を行なうことが可能になる。
【0067】
なお、アラームによる非常停止を行なう場合には、上述の一時停止手法をそのままは用いないで、直ちにサーボへの出力を止めて、可能な限り早くロボットを停止させる。図6の例で言えば、減速過程を形成するsw6〜sw9をサーボへの出力しない。
【0068】
その場合には、非常停止によって軌跡がはずれるので、低率のオーバライドで元の軌跡まで戻り(一旦、位置決め)、しかる後に上述のオーバライド変更手法を適用して加速させても良い。元の軌跡まで戻るに要する移動量を計算するためのデータ(図6の例で言えば、非常停止によってサーボセグメントに未出力のままとなっているsw6〜sw9のデータ)、プログラム速度のデータ等は、非常停止時点付近でメモリに記憶する。また、元の軌跡に復帰してからの動作のを定めるための諸データも、非常停止時点付近でメモリに記憶する。
【0069】
以上が実施形態の概略である。以下では、ロボットの軌跡ずれを回避するために実行される動的速度制御の処理をオーバライドの処理、一時停止/動作再開の処理に分けてより詳しく説明する。なお、説明の中で、オーバライド率50%(β=50)とは別のオーバライド率の例として、オーバライド率30%(β=30)のケースを考える。
【0070】
図8は、本発明の実施形態について、プログラム再生時に動作計画からサーボへの移動指令出力までにロボット制御装置内部で行なわれる処理の枠組みを図4とはやや異なる形式で説明する図である。本図では、各軸動作用の系列と直交動作(直線動作、円弧動作等)用の系列の区分記載は省略す一方、動的シャッタ付のオーバライド処理部を動的速度制御部と表記し、動的速度制御に関連して使用されるメモリを簡略化してブロック表示に加えた。
【0071】
図8を参照すると、系全体は、動作計画部と、補間処理部と、フィルタ部と、動的速度制御部を備え、動的速度制御部の出力が各軸のサーボ系(モータと表示)へ渡される。そして、処理の流れの中で、動的速度制御部の入力側と出力側にメモリが介在する構成となっている。メモリには、以下に説明する処理に適合するように多数のレジスタ領域が予め用意されている。
【0072】
なお、各レジスタ領域のことを単にメモリとも言う。また、フィルタ部から出力されたフルタリング処理後のn番目の移動指令をDnで表記する。図中には、動的速度制御部の入力側において、移動指令DnがメモリMnに格納されることが記されている。縦細に記された各ブロックは1単位のメモリ(バッファレジスタ領域)を意味する。入力側メモリM1にD1、M2にD2、MnにDn(n=1,2)が各々格納されることが例記されている。
【0073】
また、動的速度制御部の出力側メモリO1〜O4には、各々D2、D2’、D1、D1’が格納されることが例記されている。ここで、D2’、D1’は各々D1、D2にオーバライド値(β/100)を乗じた値である。このような入力側及び出力側のメモリの使い方の詳細は、以下の処理説明の中で述べる。
【0074】
[オーバライドの処理]
図9は、動的速度制御部で行なわれるオーバライドの処理を説明するフローチャートである。各ステップの要点は次の通りである。なお、iは補間周期のラベリング指標で、初期値はi=1とする。また、オーバライドの現在値βと目標値γを設定するレジスタが用意され、後者には希望するオーバライド目標値γ0 が予め設定される。オーバライドの現在値βの初期値は、初期設定された目標値γ0 と一致した値が自動設定される。
【0075】
(ステップS1);メモリM1、M2に各々移動指令Di、Di+1が格納されているかチェックする。格納いなければステップS2へ進み、格納されていればステップS3へ進む。
(ステップS2);メモリM1、M2に各々移動指令Di、Di+1を格納し、移動指令Dm1、Dm2とする。ここで、m1、m2は各々メモリM1、M2に格納されたデータであることを意味するラベルである。
【0076】
(ステップS3);メモリM1に格納されている移動指令Mm1の値が0であるかチェックする。イエスであればステップS4へ進み、ノーであればステップS5へ進む。
【0077】
(ステップS4);メモリM2に格納されている移動指令Dm2をメモリM1にコピーし、Dm1とする(移動指令Dm1の値の更新)。そして、Di+1の次の動指令Di+2を読み出し、メモリM2に格納し、Dm2とする(Dm2の値の更新)。
【0078】
(ステップS5);オーバライドの現在値β%を定め、定められたβ値の下で1補間当り(1ITP当り)の移動量(移動量を表わすセグメントの高さ)Diを算出する。Diの算出法については後述する。オーバライド現在値βは、目標値γが変化すれば動作中に変化し得る。βの値が動作中に変化するのは、ユーザの途中入力、外部信号による変更、一時停止(ホールド)時、一時停止(ホールド)あるいは非常停止後の運転再開時などである。オーバライドの現在値β%を定める処理については、一時停止(ホールド)とその後の運転再開時の処理などとともに後述する。
(ステップS6);ステップS5で算出されたDiとメモリM1に格納されている移動指令Dm1とを比較する。Dm1−Di>0であれば、ステップS8へ進み、それ以外(Dm1−Di≧0)であればステップS7へ進む。
【0079】
(ステップS7);メモリM1に格納されている移動指令Dm1を出力側のメモリO1へコピーする。次いで、このDm1とDm2を用いて、
Di=Dm1+Dm2*μ
となるμを求める。そして、このμから、Di’=Dm2*μとなるDi’を出力メモリO1へ加算する。また、Dm2をDm2=Dm2−Dm2*μに更新し、それをメモリM1にコピーして新たなDm1(Dm1の更新)とする。
【0080】
(ステップS8);ステップS5で定められた移動指令Diを出力側メモリO1に書き込む。また、メモリM1に格納されている移動指令Dm1を新たなDm1=Dm1−Diに更新する。
【0081】
(ステップS9);出力側メモリの移動指令Doをモータ(各軸サーボ系)へ出力する。
【0082】
(ステップS10);ホールド、一時停止、非常停止、動作終了指令(新たなDi出力がフィルタ部からなく、ステップS2の処理が出来ない場合に出される)等、ロボットを停止させるための指令がロボット制御装置内部で出力されているかチェックする。イエスであれば、それらのための処理(後述)を実行して、ロボットを停止させる。
ノーであれば、ステップS11へ進む。
(ステップS11);移動指令の指標値iに1を加算し、ステップS1へ戻る。
【0083】
ここで、上記ステップS5におけるオーバライド(現在値)がβ%である場合の1補間当り(1ITP当り)の移動量Di’の計算方法を記しておく。
移動量Di’の算出には、フィルタ部から出力される移動指令Diが一定でない場合にも滑らかに速度変化が得られるように、以下の式を使用する。
【0084】
現在i番目の1補間時間(ITP)t0 当りの移動指令Di’は、次式(3)で表わされる。
Di’=V(i)*t0 ・・・(3)
ここで、V(i)はi番目のITPにおけるオーバライド100%とした場合の速度である。i番目のITPにおけるオーバライド100%とした場合の1ITP当りの加速度A(i)は、一応次式(4)で表わされる。
A(i)=V(i)−V(i−1) ・・・(4)
速度推移を滑らかにするためにこのA(i)を使って、現在i番目のITPにおける加速度出力の基準式として次式(5)を採用する。
Aout(i)=−A(i−1)/2+3*A(i)/2 ・・・(5)
これを用いて、現在i番目のITPにおける速度出力として次式(6)を採用する。
ここで、OVR=β/100、δはV(i)の出力をサーボ系へ出し切っている場合にはδ=1となり、V(i)の出力をサーボ系へ出し切っていない場合にはδ=0となる。
【0085】
例えば、オーバライド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
となる。
【0086】
以上説明した処理を行ないながらコーナ部を含む経路動作を行なった場合にオーバライド値の高低が軌跡に与える影響について、オーバライド率30%の場合を例にとり、図15、図16を参照して説明する。コーナ部を含む経路動作としては、図14に示すように、位置G1から位置G2への直線動作と位置G2から位置G3への直線動作を滑らかに接続したものを考える。両動作のプログラム速度は等しいものとする。
【0087】
×印は教示点G1、G2、G3を表わし、★印は最終的にサーボ系へ出力される移動指令に対応する補間点の位置(補間位置)を表わしている。コーナー部は符号Aで示されている。一方、範囲Bは、始動のための加速及び停止(位置決め)のための減速の区間を表わしている。
【0088】
本例の場合、コーナー部Aでは速度一定で★印は等間隔で並ぶが、加減速区間Bでは、★印の間隔が徐々に拡大あるいは縮小している。符号q1、q2、q3はコーナー部A内の軌跡を代表する補間点で、コーナー部においてフィルタ部からの出力D1、D2に対応する移動区間を形成する。
【0089】
また、符号p1、p2、p3、p4は加速区間B内の軌跡を代表する補間点で、加減速区間におけるフィルタ部からの出力D1、D2に対応する移動区間を形成するものである。なお、実際に生成される補間点(★印)の数は遥かに大きいが表示のために少数で簡略描示した。
【0090】
図15を参照すると、図の左上部に示したように、オーバライド100%でロボットを動作させた場合のコーナー部Aの軌跡は、図14に示した通りで、フィルタ部からの出力D1、D2に対応する補間点q1、q2、q3を通る軌跡が得られる。
【0091】
これに対してオーバライド30%でロボットを動作させた場合のコーナー部Aの軌跡は、図15の右上部に示したようになる。上述したオーバライドの処理(β=30)により、フィルタ部からの出力D1、D2に対応する補間点q1、q2、q3が、より多数の補間点qd1〜qd9(符号は一部のみ表記)に変換される。各区間の計算式は図中に併記した通りである。
【0092】
ここで重要な事は、これら補間点qd1〜qd9は、元のオーバライド100%時の軌跡上に乗っていることである。この性質は、オーバライド率30%でなくとも同様に保証されている。一般には、オーバライド値100%時の補間点を基準にして、オーバライド値に反比例する数の補間点が出力され、しかもそれらはオーバライド値100%時の軌跡上に並ぶように形成される。従って、オーバライド値の高低によらず、同じ軌跡がコーナー部でも得られることになる。
【0093】
図15の左下部及び右下部には、フィルタ部出力段階の移動指令D1、D2が、分割出力される様子がセグメントで表示されている。本例のように、一定速度でコーナー部を通過する場合は、各セグメントの高さは一定となる。なお、コーナー部を形成する2つの動作のプログラム速度が異なる場合には、当然、各セグメントの高さは段階的に変化したものとなる。その場合でも、補間点が作る軌跡はオーバライド率に影響されない。
【0094】
次に加速区間を例にとって、加減速区間における軌跡について考察する。図16を参照すると、図の左上部に示したように、オーバライド100%でロボットを動作させた場合の加減速部B(ここでは加速部で代表)の軌跡は、図14に示した通りで、フィルタ部からの出力D1、D2、D3に対応する補間点p1、p2、p3、p4を通る軌跡に沿ってプログラム速度へ向かっての加速が行なわれる。
【0095】
オーバライド30%でロボットを動作させた場合の加速部Bの軌跡は、図15の右上部に示したように、オーバライド100%の場合と変らない。但し、上述したオーバライドの処理(β=30)により、フィルタ部からの出力D1、D2、D3に対応する補間点p1、p2、p3、p4が、より多数の補間点pd1〜qd11(符号は一部のみ表記)に変換される。各区間の計算式は図中に併記した通りである。
【0096】
このような性質は、オーバライド率30%でなくとも同様に保証されている。一般には、オーバライド値100%時の補間点を基準にして、オーバライド値に反比例する数の補間点が出力され、しかもそれらはオーバライド値100%時の軌跡上に並ぶように形成される。
【0097】
図15の左下部及び右下部には、フィルタ部出力段階の移動指令D1、D2、D3が、分割出力される様子がセグメントで表示されている。加減速部では、各セグメントの高さは段階的に変化したものとなる。この変化は、オーバライド100%時の速度をその30%(一般にはβ%)に減じて滑らかに加速する過程を表わしている。加速の最終到達速度は当然プログラム速度の30%(一般にはβ%)となる。
【0098】
オーバライドをロボットの動作中に変更する場合には、図17のフローチャートに示したオーバライド漸近・到達処理を行なう。この処理は後述するホールドの処理や動作再開処理でも利用される。
オーバライド漸近・到達処理の各ステップの要点は次の通りである。
(ステップL1);オーバライド目標値を新値βN に更新する。
【0099】
(ステップL2);オーバライド目標値の更新の次のITPからf回目のITPの到来を待つ。fは適当な大きさに設定された正整数値である。
(ステップL3);オーバライド現在値をβからβ+Δβに更新する。Δβは、例えばΔβ=1(%)などに予め決めておくか、あるいは次式(7)で計算する。
Δβ=(βN −オーバライド目標値更新直前のβ)/n ・・・(7)
ここで、nはオーバライド現在値を目標値に一致させるまでに要する更新回数で、例えばn=10などとするか、別途条件から定める(後述するホールド処理の説明を参照)。このような処理を行なうことで、図9のフローチャートにおけるβが新たな目標値に向かって段階的に変更される。
【0100】
[ホールドの処理]
図10は、動的速度制御部で行なわれるホールドの処理を説明するフローチャートである。ホールドの処理は、例えばオペレータが一時停止の指令をロボット制御装置に入力した際に実行される。各ステップの要点は次の通りである。
【0101】
(ステップH1);ホールド指令がロボット制御装置内部で出力されたか否かITP毎にチェックする。出力されたら、ステップH2へ進む。
(ステップH2);動的制御部にて現在の速度Vから、時間t1経過後に滑らかに速度が0となるように、減速オーバライド値OVdを制御する。
【0102】
(ステップH3);ロボットが停止したか否かITP毎にチェックする。停止を確認したら、ステップH4へ進む。
(ステップH4);その時点における現在位置(停止位置)、フィルタ内の移動指令のデータ、その他ロボットの動作に関する諸データをメモリ(ホールド時格納用のレジスタ)に格納して、ホールドの処理を終了する。
【0103】
ステップH2の処理における減速オーバライド値OVdの制御には、図17のフローチャートに示したオーバライド漸近・到達処理を利用する。
即ち、ステップL1におけるオーバライドの更新目標値βN をβN =0とする。また、時間t1のITP換算値をs1としてs1をη分割し(ηは1でない適当な正整数)、ステップL2におけるfをf=s1/ηとする。そして、ステップL3におけるΔβの計算式(7)におけるnをβN =0、n=ηで計算する。
【0104】
図12は、上記のホールド処理を行なった場合の速度推移を表わしている。オーバーライドは段階的に0に向かうが、それが実際の速度に反映し切るには移動指令がサーボ系に出力され切る必要がある。そのため、速度推移は直線的には降下しない。また、動作をより滑らかにするために、Δβの値を一定値とせずに滑らかな関数(例えば指数関数)に従って徐々に変化させて滑らかな加速度推移が得られるようにしても良い。
【0105】
[動作再開の処理]
図11は、動的速度制御部で行なわれる動作再開の処理を説明するフローチャートである。動作再開の処理は、一時停止後に例えば動作再開指令をロボット制御装置に入力した際に実行される。各ステップの要点は次の通りである。
【0106】
(ステップH11);メモリに格納した停止位置を読み出す。
(ステップH12);現在のロボット位置(例えば、ジョグ送りで移動している)からステップH11で読み出された停止位置までロボットを動作させる。
【0107】
(ステップH13);ステップH12による動作の完了の確認。確認したら、ステップH14へ進む。
(ステップH14);再開動作に必要なデータをメモリとり読み出し、動作計画部、補間部、フィルタ部へ戻し、ホールド直前の状態を回復させる。
【0108】
(ステップH15);停止位置から、ホールド前と同様に補間動作を行なう。また、同時に動的制御部にて現在のオーバーライド値(β=0)から、時間t2経過後に滑らかに速度が元の速度vとなるように、加速オーバライド値OVaを制御する。
【0109】
ステップH15の処理における加速オーバライド値OVaの制御には、図17のフローチャートに示したオーバライド漸近・到達処理を利用する。
即ち、ステップL1におけるオーバライドの更新目標値βN をβN =ホールド直前のβの値とする。また、時間t2のITP換算値をs2としてs2をη分割し(ηは1でない適当な正整数)、ステップL2におけるfをf=s2/ηとする。そして、ステップL3におけるΔβの計算式(7)におけるnをβN =ホールド直前のβの値0、n=ηで計算する。
【0110】
図13は、上記のステップH15の処理を行なった場合の速度推移を表わしている。オーバーライドは0から段階的に元の値に向かうが、それが実際の速度に反映し切るには移動指令がサーボ系に出力され切る必要がある。そのため、速度推移は直線的には上昇しない。また、動作をより滑らかにするために、Δβの値を一定値とせずに滑らかな関数(例えば指数関数)に従って徐々に変化させて滑らかな加速度推移が得られるようにしても良い。
【0111】
【発明の効果】
本発明によれば、従来技術においてオーバライドの高低、オーバライドの動作中の切換あるいは一時停止に関連して発生していた軌跡ずれが防止出来る。また、そのこととを通して、教示後のテストランによる軌跡確認作業の効率性、信頼性並びに安全性を向上させることが出来る。更に、オーバライドの動作中の切換や一時停止に伴う軌跡ずれをなくなるので、ロボット作業の精度と安全性が向上する。
【図面の簡単な説明】
【図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 ロボット
Claims (9)
- ロボットの各軸を駆動するサーボモータへ移動指令を出力するためのソフトウェア手段を備えたロボットの制御装置において、
前記ソフトウェア手段は、ロボットの動作目標位置までの移動量を求め、これをある周期で補間処理し、
前記補間処理された出力を加減速制御のためにフィルタリング処理し、
ロボット動作中に動的に指定される各軸共通のオーバライド値の下でロボットのツール先端点の軌跡を変えることなく動作させるようオーバライドのための処理を行なうようにした、前記ロボット制御装置。 - プログラム実行中にオーバライド値を変更した揚合に、ロボットのツール先端点の軌跡を変えることなく動作させるように、前記オーバライドのための処理が行なわれる、請求項1に記載のロボットの制御装置。
- プログラム実行時にロボットを一時停止させた場合に、オーバライド値を0まで低下させる処理を行なってロボットを減速させ、通常動作で描くツール先端点の軌跡に沿って前記減速が行なわれて停止に至るようにロボットを制御する、請求項2に記載されたロボットの制御装置。
- プログラム実行時にロボットを一時停止させた後、停止後に動作を再開させた場合に、オーバライド値を0から上昇させる処理を行なってロボットを通常動作で描くツール先端点の軌跡に沿って加速し、一時停止前と同じ速度と同じ軌跡を以て動作する状態に至るようにロボットを制御する、請求項3に記載されたロボットの制御装置。
- プログラム実行時にロボットを非常停止させた後、停止後に動作を再開させた場合には、通常動作で描くツール先端点の軌跡上に戻るための移動を表わす移動指令を前記サーボモータへ出力する処理を行なって通常動作で描くツール先端点の前記軌跡上に戻り、その後、前記オーバライド値を所定値まで上昇させる処理を行なってその軌跡に沿って加速し、非常停止前と同じ速度と同じ軌跡を以て動作する状態に至るようにロボットを制御する、請求項2に記載されたロボットの制御装置。
- 前記ロボットの制御装置内部でオーバライドの目標値が保持され、オーバライド現在値をオーバライドの前記目標値に向けて漸次変更することによってオーバライド値の変更が行ない得る、請求項2〜請求項5のいずれか1項に記載のロボットの制御装置。
- 前記一時停止時点付近で、前記ロボットの制御装置内部で動作データを保存し、動作再開時に前記保存された動作データを利用するようにした、請求項3〜請求項5のいずれか1項に記載のロボットの制御装置。
- 前記動作プログラムに基づく前記動作計画は、少なくとも一つの動作区間について直交動作を行なうための直交動作計画を含んでいる、請求項1〜請求項7のいずれか1項に記載のロボットの制御装置。
- 前記動作プログラムに基づく前記動作計画は、少なくとも一つの動作区間について各軸動作を行なうための各軸動作計画を含んでいる、請求項1〜請求項7のいずれか1項に記載のロボットの制御装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36230097A JP3673383B2 (ja) | 1997-12-12 | 1997-12-12 | ロボットの制御装置 |
DE69839795T DE69839795D1 (de) | 1997-12-12 | 1998-12-11 | Robotersteuerung |
EP98310162A EP0922542B1 (en) | 1997-12-12 | 1998-12-11 | Robot controller |
US09/210,627 US6163124A (en) | 1997-12-12 | 1998-12-14 | Robot controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36230097A JP3673383B2 (ja) | 1997-12-12 | 1997-12-12 | ロボットの制御装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001213995A Division JP3588063B2 (ja) | 2001-07-13 | 2001-07-13 | ロボット制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11175130A JPH11175130A (ja) | 1999-07-02 |
JP3673383B2 true JP3673383B2 (ja) | 2005-07-20 |
Family
ID=18476501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36230097A Expired - Fee Related JP3673383B2 (ja) | 1997-12-12 | 1997-12-12 | ロボットの制御装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6163124A (ja) |
EP (1) | EP0922542B1 (ja) |
JP (1) | JP3673383B2 (ja) |
DE (1) | DE69839795D1 (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001260061A (ja) | 2000-03-15 | 2001-09-25 | Kawasaki Heavy Ind Ltd | ロボットの再起動方法 |
DE10032096A1 (de) * | 2000-07-01 | 2002-01-24 | Kuka Roboter Gmbh | Geräteverbund und Steuerschrank für einen solchen |
WO2002033815A1 (fr) * | 2000-10-17 | 2002-04-25 | Technowave, Ltd. | Procede de commande de l'acceleration/deceleration d'un moteur |
DE10255037A1 (de) * | 2002-11-26 | 2004-06-09 | Kuka Roboter Gmbh | Verfahren und Vorrichtung zum Bearbeiten eines Werkstücks |
US7813836B2 (en) * | 2003-12-09 | 2010-10-12 | Intouch Technologies, Inc. | Protocol for a remotely controlled videoconferencing robot |
JP4210270B2 (ja) * | 2005-06-07 | 2009-01-14 | ファナック株式会社 | ロボット制御装置及びロボット制御方法 |
DE102005058867B4 (de) * | 2005-12-09 | 2018-09-27 | Cine-Tv Broadcast Systems Gmbh | Verfahren und Vorrichtung zum Bewegen einer auf einem Schwenk- und Neigekopf angeordneten Kamera entlang einer vorgegebenen Bewegungsbahn |
CN101375222B (zh) * | 2006-01-17 | 2010-12-01 | 武藏工业株式会社 | 作业再次开始性优异的作业机器人 |
JP4945737B2 (ja) * | 2006-12-06 | 2012-06-06 | 日本電産サンキョー株式会社 | ロボットシステム及び補間方法 |
US8214415B2 (en) * | 2008-04-18 | 2012-07-03 | Motion Engineering Incorporated | Interpolator for a networked motion control system |
JP5447048B2 (ja) * | 2010-03-18 | 2014-03-19 | 株式会社デンソーウェーブ | ロボットの制御装置及びロボットの位置修正制御方法 |
US9921712B2 (en) | 2010-12-29 | 2018-03-20 | Mako Surgical Corp. | System and method for providing substantially stable control of a surgical tool |
US9119655B2 (en) | 2012-08-03 | 2015-09-01 | Stryker Corporation | Surgical manipulator capable of controlling a surgical instrument in multiple modes |
JP5149421B2 (ja) * | 2011-05-20 | 2013-02-20 | ファナック株式会社 | 加工時間予測部および加工誤差予測部を有する数値制御装置 |
JP5289608B2 (ja) | 2011-12-13 | 2013-09-11 | ファナック株式会社 | ロボット減速機寿命推定シミュレーション装置 |
US9820818B2 (en) | 2012-08-03 | 2017-11-21 | Stryker Corporation | System and method for controlling a surgical manipulator based on implant parameters |
US9226796B2 (en) | 2012-08-03 | 2016-01-05 | Stryker Corporation | Method for detecting a disturbance as an energy applicator of a surgical instrument traverses a cutting path |
CN112932672B (zh) | 2012-08-03 | 2024-09-03 | 史赛克公司 | 用于机器人外科手术的系统和方法 |
JP6057284B2 (ja) * | 2012-10-09 | 2017-01-11 | シンフォニアテクノロジー株式会社 | 多関節ロボット及び半導体ウェハ搬送装置 |
JP6057283B2 (ja) * | 2012-10-09 | 2017-01-11 | シンフォニアテクノロジー株式会社 | 多関節ロボット及び半導体ウェハ搬送装置 |
US9221175B2 (en) * | 2013-03-28 | 2015-12-29 | Denso Wave Incorporated | Method of generating path of multiaxial robot and control apparatus for the multiaxial robot |
JP5715189B2 (ja) * | 2013-06-12 | 2015-05-07 | ファナック株式会社 | オーバライドの変化時に送り速度を円滑に変更する機能を有する数値制御装置 |
US9162357B2 (en) * | 2013-06-26 | 2015-10-20 | Canon Kabushiki Kaisha | Control method for robot system and robot system |
JP6376558B2 (ja) * | 2013-09-13 | 2018-08-22 | 株式会社ソディック | 加工データ演算装置および加工データ演算プログラム |
JP6706518B2 (ja) * | 2016-03-17 | 2020-06-10 | ローランドディー.ジー.株式会社 | 加工時間予測装置、切削加工システムおよび加工時間予測方法 |
JP6581049B2 (ja) * | 2016-08-15 | 2019-09-25 | ファナック株式会社 | ロボットシステム |
US11202682B2 (en) | 2016-12-16 | 2021-12-21 | Mako Surgical Corp. | Techniques for modifying tool operation in a surgical robotic system based on comparing actual and commanded states of the tool relative to a surgical site |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5962909A (ja) * | 1982-10-01 | 1984-04-10 | Fanuc Ltd | 加減速装置 |
DE3244307A1 (de) * | 1982-11-30 | 1984-05-30 | Siemens AG, 1000 Berlin und 8000 München | Robotersteuerung |
DE3408523A1 (de) * | 1984-03-08 | 1985-09-12 | Siemens AG, 1000 Berlin und 8000 München | Verfahren zur ueberwachung der durch die steuerung der antriebe einer rechnergesteuerten werkzeugmaschine oder eines industrieroboters erzeugten bahn |
JPS6118009A (ja) * | 1984-07-04 | 1986-01-25 | Fanuc Ltd | 加減速制御方式 |
JPS63273108A (ja) * | 1987-04-30 | 1988-11-10 | Fanuc Ltd | 速度制御装置 |
EP0340538B2 (de) * | 1988-05-03 | 1995-11-22 | Siemens Aktiengesellschaft | Verfahren zum Steuern der Bewegung eines Maschinenelementes |
JPH05324046A (ja) * | 1992-05-18 | 1993-12-07 | Mitsubishi Electric Corp | 多系統数値制御方法及びその装置 |
-
1997
- 1997-12-12 JP JP36230097A patent/JP3673383B2/ja not_active Expired - Fee Related
-
1998
- 1998-12-11 EP EP98310162A patent/EP0922542B1/en not_active Expired - Lifetime
- 1998-12-11 DE DE69839795T patent/DE69839795D1/de not_active Expired - Lifetime
- 1998-12-14 US US09/210,627 patent/US6163124A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6163124A (en) | 2000-12-19 |
EP0922542A3 (en) | 2001-01-17 |
DE69839795D1 (de) | 2008-09-11 |
JPH11175130A (ja) | 1999-07-02 |
EP0922542A2 (en) | 1999-06-16 |
EP0922542B1 (en) | 2008-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3673383B2 (ja) | ロボットの制御装置 | |
JP4351281B2 (ja) | 5軸加工機を制御する数値制御装置 | |
JP4917252B2 (ja) | アーク溶接用装置 | |
CN103970139B (zh) | 一种机器人连续点位运动规划方法 | |
WO1995025991A1 (fr) | Controleur de machine | |
JPH0944225A (ja) | ロボットの制御方法 | |
US20060037951A1 (en) | Laser processing apparatus | |
US20060184278A1 (en) | Robot movement control method | |
JP3034843B2 (ja) | 加工機の制御装置 | |
WO1982001426A1 (en) | Numerical control system | |
JP4842656B2 (ja) | 溶接ロボット制御装置 | |
CN116291519A (zh) | 盾构机无人化自主掘进的轴线控制方法 | |
JP3588063B2 (ja) | ロボット制御装置 | |
US5197014A (en) | Interpolation method in automatic programming | |
WO1995000890A1 (fr) | Procede d'enseignement d'une position a un robot et appareil de commande | |
EP0864400B1 (en) | Stitch processing method using industrial robot | |
JPH0628004B2 (ja) | 複数ロボットの制御方法 | |
JP2001084019A (ja) | 数値制御装置 | |
JP4889342B2 (ja) | 溶接ロボット制御装置 | |
WO2002033815A1 (fr) | Procede de commande de l'acceleration/deceleration d'un moteur | |
JPH11188686A (ja) | ロボット制御装置 | |
JPH0690647B2 (ja) | 機械加工システム | |
JP2009075898A (ja) | ロボット制御装置 | |
JPH11179684A (ja) | ロボット制御装置のロボット軌道作成方法 | |
JP2007260767A5 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050422 |
|
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: 20080428 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110428 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120428 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |