(57)【要約】【課題】  コンベア等の搬送装置におけるロボットの作業対象物の移動量の変化が大きくても高速高精度な追従作業を実行可能なロボット制御装置を得る。【解決手段】  ロボット制御装置において、搬送装置位置検出部と、搬送装置位置生成部と、搬送装置位置生成部で得られたロボットの指令値を生成する搬送装置移動量生成部と、ロボットの搬送装置に対する追従誤差を記憶しておく追従誤差記憶部と、ロボットの追従遅れを補正する追従遅れ補正量を求め、追従遅れ補正量と追従誤差記憶部に記憶された追従誤差より追従目標移動量を生成する追従遅れ補正部と、追従遅れ補正部で生成された追従目標移動量から次制御周期の追従移動量を生成する追従移動量生成部とを備えるようにした。【選択図】        図１
2007290128.tif 000002
【特許請求の範囲】
【請求項１】
動作制御部と指令パルス生成部とサーボ制御部を備え、搬送装置によって搬送される作業対象物に対して追従しながらロボットに作業を行なわせるロボット制御装置において、
前記搬送装置の位置を検出する搬送装置位置検出部と、
該搬送装置位置検出部で得られる位置を変換し、仮想搬送装置位置を生成する搬送装置位置生成部と、
該搬送装置位置生成部で得られたロボットの指令値を生成する現在の時刻の仮想搬送装置位置と前記指令値を生成する現在の時刻の１制御周期前の時刻における仮想搬送装置位置から１制御周期間に搬送装置が移動した搬送装置移動量を生成する搬送装置移動量生成部と、
前記ロボットの前記搬送装置に対する追従誤差を記憶しておく追従誤差記憶部と、
前記搬送装置移動量生成部で生成された搬送装置移動量、１制御周期前に求めた１制御周期前搬送装置移動量と修正係数から次制御周期推定移動量を求め、該次制御周期推定移動量と追従遅れ補正係数によりロボットの追従遅れを補正する追従遅れ補正量を求め、前記追従遅れ補正量と前記追従誤差記憶部に記憶された追従誤差より追従目標移動量を生成する追従遅れ補正部と、
前記追従遅れ補正部で生成された前記追従目標移動量から次制御周期の追従移動量を生成する追従移動量生成部と、
を備えたことを特徴とするロボット制御装置。
【請求項２】
追従遅れ補正部の追従遅れ補正係数は、サーボモータの位置ループの制御ゲインと、ロボットの制御周期と、指令パルス生成部からサーボ制御部へ指令値が入力されるまでの制御周期数と、次制御周期での搬送装置の移動量を反映するための制御周期数と、により求めることを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
搬送装置又はロボットの状態ごとの補正データを記憶する記憶領域を備え、ロボットの追従遅れ補正量は、上記搬送装置又はロボットの状態ごとの補正データにより決定することを特徴とする請求項１に記載のロボット制御装置。
【請求項４】
追従移動量生成部は、前記追従遅れ補正部で生成された前記追従目標移動量、ロボットの１制御周期前に生成した追従移動量、前記次制御周期推定移動量、ロボットの１制御周期追従加速量または減速量から次制御周期の追従移動量を求め、該次制御周期の追従移動量の各座標軸の成分が次制御周期最大追従移動量と次制御周期最小追従移動量との範囲内になるように次制御周期の追従移動量を生成することを特徴とする請求項１に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、搬送装置により移動中の作業対象物(以下、対象物)に対し、追従しながら作業を行う産業用ロボット(以下、ロボットという)のロボット制御装置に関するものである。
【背景技術】
【０００２】
従来のロボット制御装置では、図８に示すように、ロボット１１８は、平均化移動量分コンベアの移動方向に動作しながら、対象物に対して作業を行う(例えば特許文献１参照)。すなわち、同期開始リミットスイッチ１０８をロボット１１８が作業を行う対象物が横切ると、積算カウンタ１１０がリセットされるとともに動作制御部１０１に対象物の同期開始点到達を知らせる。カウンタ１１０は、コンベアエンコーダ１０９から出力されるパルスにより、コンベアの移動に従ってパルスを積算し、制御サイクル周期内コンベア移動パルス計測部１１１では、積算カウンタ１１０の値より、１制御サイクル周期の移動パルス数ΔＣｎを計測する。制御サイクル周期内コンベア移動作成部１１２では移動パルス数より、コンベア移動量ΔＬｎを求める。追従遅れ量加速補正処理部１１３では、追従遅れを補正するため、ロボット１１８遅れ時間分補正量をΔＬｎに加え、対象物に追いつくようにΔＬｎを補正する。コンベア移動量平均化部では、指令値の速度波形が滑らかになるように過去数回分のΔＬｎを平均し、平均化移動量ΔＬａを求める。位置修正量演算部１１５では移動量ΔＬａをコンベア方向に分解する。分解された平均化コンベア移動量は、制御サイクル周期後到達位置修正部１０４において、動作プログラムによって実行されるロボット１１８の指令値に加えられる。
【０００３】
【特許文献１】特開平３−１５４１０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記のように、従来のロボット制御装置は、コンベアの移動量に変動があった場合に、追従遅れ量加速補正処理部において１制御サイクル周期内で全遅れ量を加え、その後平均化を行っているので、平均化後の移動量の変化が滑らかでなく、追従開始時やコンベアの速度が急激に変化した場合、ロボットの動作が振動的になるという問題があった。
【０００５】
また、コンベア移動量を過去数回分の移動量で平均化するため、平均化による遅れが生じるという問題があった。
【０００６】
この発明は、上記のような問題点を解決するためになされたものであり、コンベア等の搬送装置における移動量の変化が大きくても高速高精度な追従作業を実行可能なロボット制御装置を得ることを目的とするものである。
【課題を解決するための手段】
【０００７】
この発明の第１の構成によるロボット制御装置は、動作制御部と指令パルス生成部とサーボ制御部を備え、搬送装置によって搬送される作業対象物に対して追従しながらロボットに作業を行なわせるロボット制御装置において、
前記搬送装置の位置を検出する搬送装置位置検出部と、
該搬送装置位置検出部で得られる位置を変換し、仮想搬送装置位置を生成する搬送装置位置生成部と、
該搬送装置位置生成部で得られたロボットの指令値を生成する現在の時刻の仮想搬送装置位置と前記指令値を生成する現在の時刻の１制御周期前の時刻における仮想搬送装置位置から１制御周期間に搬送装置が移動した搬送装置移動量を生成する搬送装置移動量生成部と、
前記ロボットの前記搬送装置に対する追従誤差を記憶しておく追従誤差記憶部と、
前記搬送装置移動量生成部で生成された搬送装置移動量、１制御周期前に求めた１制御周期前搬送装置移動量と修正係数から次制御周期推定移動量を求め、該次制御周期推定移動量と追従遅れ補正係数によりロボットの追従遅れを補正する追従遅れ補正量を求め、前記追従遅れ補正量と前記追従誤差記憶部に記憶された追従誤差より追従目標移動量を生成する追従遅れ補正部と、
前記追従遅れ補正部で生成された前記追従目標移動量から次制御周期の追従移動量を生成する追従移動量生成部と、
を備えたものである。
【０００８】
また、この発明の第２の構成によるロボット制御装置は、追従遅れ補正部の追従遅れ補正係数を、サーボモータの位置ループの制御ゲインと、ロボットの制御周期と、指令パルス生成部からサーボ制御部へ指令値が入力されるまでの制御周期数と、次制御周期での搬送装置の移動量を反映するための制御周期数とにより求めるようにしたものである。
【０００９】
また、この発明の第３の構成によるロボット制御装置は、搬送装置又はロボットの状態ごとの補正データを記憶する記憶領域を備え、ロボットの追従遅れ補正量は、上記搬送装置又はロボットの状態ごとの補正データにより決定するようにしたものである。
【００１０】
また、この発明の第４の構成によるロボット制御装置は、前記追従遅れ補正部で生成された前記追従目標移動量、ロボットの１制御周期前に生成した追従移動量、前記次制御周期推定移動量、ロボットの１制御周期追従加速量または減速量から次制御周期の追従移動量を求め、該次制御周期の追従移動量の各座標軸の成分が次制御周期最大追従移動量と次制御周期最小追従移動量との範囲内になるように次制御周期の追従移動量を生成する追従移動量生成部を備えたものである。
【発明の効果】
【００１１】
この発明のロボット制御装置によれば、追従移動量生成部であらかじめ定められたロボットの加速パターン、減速パターン、ロボットの現在追従速度、搬送装置の現在速度、ロボットの現在位置と搬送装置上の目的位置の追従誤差から最短時間でロボットと搬送装置の速度が等しくかつロボットの現在位置と搬送装置上の目的位置の追従誤差がなくなるように追従移動量を決定するため、高速に追従作業が可能となるという効果がある。また、追従遅れ補正部であらかじめ記憶領域に記憶された搬送装置の速度やロボットの位置姿勢ごとの補正データをを用いて追従補正を行うため、搬送装置の速度変動、ロボットの位置姿勢によらず高精度な追従作業が可能となるという効果がある。
【発明を実施するための最良の形態】
【００１２】
以下、この発明の各実施の形態を図に基づいて説明する。
実施の形態１．
図１は、この発明を実施するための実施の形態１によるロボット制御装置を説明するための構成図である。図において、１はロボット、２はロボット制御装置、３は作業対象物(以下、ワーク)Ｗを搬送する搬送装置であるコンベア、４はコンベアの移動量を検知するコンベアエンコーダである。２０は動作制御部であり、ロボットの動作プログラムによって記述された動きを実現するための指令値を制御周期ごとに生成し、指令パルス生成部２１に出力する。指令パルス生成部２１では動作制御部で生成された指令値を逆変換など行い、サーボ制御部２２に指令パルスを出力する。サーボ制御部２２では指令パルスに従ってロボットのサーボモータを制御し、ロボットを動作させる。２３はエンコーダ値検出部で、コンベアエンコーダ４から出力されたパルスを受信し、パルスを積算してコンベアの位置を管理する。２４は仮想エンコーダ値生成部で、エンコーダ値検出部２３で管理しているエンコーダ値を仮想エンコーダ値に変換する。２５はコンベア移動量生成部で仮想エンコーダ値を元にコンベアの移動量を生成する。２６はサーボ制御の遅れなどを補正する追従遅れ補正部、２７はロボットの追従移動量を生成する追従移動量生成部、２８は追従誤差を記憶しておく追従誤差データ記憶部である。
【００１３】
次に動作について説明する。ワークＷがコンベア３によって運ばれ、光電センサや画像センサなどのセンサ(記載せず)により、ロボットの動作範囲に入ったことを検出すると、以下のようにして追従動作を開始する。コンベア３が動作すると同時にコンベアエンコーダ４も回転し、パルスを発生する。発生したパルスはエンコーダ値検出部２３でカウントされ、コンベアの位置が検出される。エンコーダ値検出部は例えば１６ｂｉｔの積算カウンタで構成され、０〜６５５３５の値をとる。仮想エンコーダ値生成部２４では、１制御周期ごとにエンコーダ値をエンコーダ値検出部２３から読み出し、仮想エンコーダ値を生成する。
【００１４】
仮想エンコーダ値は次ぎのようにして求める。現在の時刻をｔi、１制御周期前の時刻をｔi-1、１制御周期後の時刻をｔi+1とし、時刻ｔi-1、ｔiのエンコーダ値をそれぞれＥi-1、Ｅi、仮想エンコーダ値をＦi-1、Ｆiとする。また、仮想エンコーダ値の最大値、最小値をＦｍａｘ、Ｆｍｉｎとすると、Ｆiの値は、
Ｆi＝Ｆi-1＋ｆ（Ｅi−Ｅi-1）
【００１５】
ここで、ｆ（ｘi）はフィルタ関数であり、コンベアの速度変動の状態によって選択する。例えば、コンベアの速度変動があまりなく、ロボットに振動が発生しない場合は、フィルタなしとし、
ｆ（ｘi）＝ｘi
【００１６】
コンベアの変動の頻度が高く、ロボットの動作が振動的になる場合は、例えば、次に示すような平均化関数の式(１)を用いる。
【００１７】
【数１】
2007290128.tif 000003
【００１８】
ここで、ｍは正の整数である。振動が少ない場合は、ｍの値を小さく設定し、振動が大きい場合は、ｍの値を大きく設定する。
【００１９】
上記のように求めたＦiに対し、Ｆiが最大値Ｆｍａｘを越えた場合は、
Ｆi＝Ｆi−Ｆｍａｘ＋Ｆｍｉｎ
また、Ｆiが最小値Ｆｍｉｎ以下になった場合は、
Ｆi＝Ｆi＋Ｆｍａｘ−Ｆｍｉｎ
とする。Ｆｍａｘ，Ｆｍｉｎは自由に設定可能である。１６ｂｉｔのカウンタではワークの搬送中にエンコーダが６５５３５パルス分以上回ってしまうと、桁あふれが発生し、位置が管理できなくなるが、Ｆｍａｘ，Ｆｍｉｎを大きく設定することにより、長いコンベアにも対応が可能となる。
【００２０】
コンベア移動量生成部２５では、まず仮想エンコーダ値生成部２４で生成された仮想エンコーダ値Ｆi，Ｆi-1から１制御周期でのエンコーダ値変化量ｄＦiを求める。次に、あらかじめ求めておいた３次元空間における１パルスあたりの移動量［ｄｘ，ｄｙ，ｄｚ]を使って、１制御周期あたりのコンベアの３次元空間における移動量ｄＣi＝［ｄｘ×ｄＦi，ｄｙ×ｄＦi，ｄｚ×ｄＦi］を求める。
【００２１】
追従遅れ補正部２６では、まず、コンベア移動量生成部２５で得られたコンベアの移動量ｄＣiから、次の１制御周期間のコンベア移動量Ｖｃを推定する。コンベア次制御周期推定移動量Ｖｃは例えば次式で求める。
Ｖｃ＝ｄＣi＋ａ×（ｄＣi−ｄＣi-1）
ここで、ａは修正係数、ｄＣi-1は時刻ｔi-2からｔi-1におけるコンベアの移動量である。ａの値はコンベアの速度変動に応じて決定する。コンベアの速度変動がほとんどない場合は、ａ＝０とし、現在の速度と同一の速度で動作したものとしてコンベア推定移動量Ｖｃを求める。また、速度変動が大きく、ずれが大きくなる場合、ａ＝１．０とすることにより、速度変動によるずれを補正することが可能である。速度変動により、ロボットの動作が振動的になる場合は、ａに負の値、例えば、ａ＝−０．５とすることにより、振動を抑制する効果がある。
【００２２】
次に追従遅れ補正量ｄＤi+1を次式により求める。
ｄＤi+1＝ｂ×Ｖｃ
ｂは追従遅れ補正係数であり、次式で求める。
ｂ＝１／（ＫＴ）＋ｃ＋１
ここで、Ｋはサーボモータの位置ループの制御ゲイン、Ｔはロボットの制御周期、ｃは指令パルス生成部２１で指令値を生成してからサーボ制御部２２に指令値が入力されるまでの制御周期数である。右辺第３項の１は次制御周期中のコンベアの移動量を反映するためのものである。位置ループゲインＫはコンベアの進行方向にロボットを動作させたときに最も動作量の大きい関節のサーボモータのゲインを用いれば良い。
【００２３】
上記の補正後、コンベアの速度が変化しても追従誤差が発生しない場合は、上記のbの値で良いが、追従誤差が変化する場合は次のようにして補正できる。コンベア速度ｖ１[ｍｍ／ｓ]のとき、ｘ１[ｍｍ]、ｖ２[ｍｍ／ｓ]のときｘ２[ｍｍ]の遅れが発生する場合、上記のｂの代わりに次式を用いるとよい。
ｂ＝１／（ＫＴ）＋ｃ＋（ｘ２−ｘ１）／（（ｖ２−ｖ１）Ｔ）＋１
【００２４】
次に、生成された追従遅れ補正量ｄＤi+1を元にロボット追従目標移動量Ｄi+1を求める。まず、前回追従誤差Ｒiを追従誤差データ記憶部２８から読み出す。追従遅れ補正量ｄＤi+1と追従誤差Ｒiより、追従目標移動量Ｄi+1を次式により求める。
Ｄi+1＝ｄＤi+1＋Ｒi
【００２５】
追従移動量生成部２７では、追従遅れ補正部２６で生成された追従目標移動量Ｄi+1とロボットの前制御周期での追従移動量Ｖｒ、コンベアの次制御周期での推定移動量Ｖｃより、次制御周期でのロボットの追従移動量Ｖｎを求める。次制御周期におけるロボットの追従移動量Ｖｎの求め方について図２を用いて示す。なお、Ｖｒ，Ｖｃ，Ｄi+1などは３次元データであり、ｘ，ｙ，ｚ方向の３要素を持つが、図２の処理をそれぞれの要素について行うことによりＶｎを求める。以下では、Ｖｒ、Ｖｃ、Ｄi+1の各要素をそれぞれｖｒ、ｖｃ、ｄとする。なお、各移動量の符号はコンベアの進行方向を正とする。
【００２６】
まず、ＳＴ１ではロボットの前制御周期追従移動量ｖｒの正負を判断し、正の場合は図２に示すフローに従いステップＳＴ２に、また負の場合はＳＴ３０へ進む。ＳＴ３０の詳細な手順は図３に示す。ステップＳＴ２では、次制御周期でロボットが加速した場合、減速した場合の次制御周期最大追従移動量ｖａ、次制御周期最小追従移動量ｖｄを次式により求める。
ｖａ＝ｖｒ＋ａｃｃ
ｖｄ＝ｖｒ−ｄｅｃ
ここで、ａｃｃ，ｄｅｃはそれぞれ１制御周期追従加速量、減速量であり、共に正の値である。これらの値はロボットの特性を考慮して決定される。このようにして求めた次制御周期最大移動量ｖａとロボットの1制御周期最大移動量ｖｍａｘを比較し、ｖａがｖｍａｘより大きい場合はｖａ＝ｖｍａｘとする。
【００２７】
ステップＳＴ３では、コンベアの推定移動量ｖｃとロボットの前制御周期追従移動量ｖｒを比較し、ｖｃの方が大きい場合はロボットを加速しなければならないので、ステップＳＴ４で加減速度ａｄにａｃｃをセットし、ｖｒの方が大きい場合は、ロボットは減速しなければならないので加減速度ａｄに−ｄｅｃをセットする。
【００２８】
ステップＳＴ５ではコンベアとロボットが等速度になるまでに要する制御周期数nを次式により求める。
ｎ＝ｉｎｔ（（ｖｃ−ｖｒ）／ａｄ）
ここで、ｉｎｔ（ｘ）はｘを超えない最大の整数を求める関数である。ステップＳＴ１６で、ｎが０でない正の整数の場合、ステップＳＴ７に進み、ｎ制御周期後にロボットが追従目標移動量ｄ移動するために必要な次制御周期でのロボット追従移動量ｖｎを次式で求める。
ｖｎ＝（ｄ＋ｖｃ×（ｎ−１））／ｎ−（ｎ−１）×ａｄ／２
【００２９】
ステップＳＴ１６においてｎが０の場合、ロボットとコンベアは等速度であるので、ステップＳＴ１１で次制御周期のロボット追従移動量ｖｎをｖｎ＝ｄとする。
【００３０】
ステップＳＴ８では、ステップＳＴ７，ＳＴ１１で求めたｖｎと、ステップＳＴ２で求めた次制御周期最大追従移動量ｖａの大小を比較し、ｖｎがｖａより大きい場合は、あらかじめ設定した加速度以上に加速しないようにｖｎ＝ｖａに修正する。小さい場合はステップＳＴ１２に進み、ｖｎと次制御周期最小追従移動量ｖｄと大小を比較する。ｖｎがｖｄより小さい場合はあらかじめ設定した減速度以上に減速しないように、ｖｎ＝ｖｄに修正する。ｖｎの方が大きい場合は修正せずにそのままの値を次制御周期の追従移動量とする。
【００３１】
一方、ステップＳＴ１でｖｒが０以下に場合は、コンベアとロボットが反対方向に動作、またはロボットが停止している場合であり、ＳＴ３０へ進む。図３はＳＴ３０における処理手順を示す。
【００３２】
ステップＳＴ１４では、ロボットの次制御周期最大追従移動量ｖａと次制御周期最小追従移動量ｖｄを次式により求める
ｖａ＝ｖｒ−ａｃｃ
ｖｄ＝ｖｒ＋ｄｅｃ
ただし、ｖａがロボット最大追従移動量ｖｍａｘより大きい場合は、ｖａ＝−ｖｍａｘとする。
【００３３】
次にステップＳＴ１５では、次式によりコンベアとロボットが等速度になるまでに要する制御周期数ｎを求める。
ｎａ＝ｉｎｔ（ａｂｓ（ｖｃ／ａｃｃ））＋１
ｎｄ＝ｉｎｔ（ａｂｓ（ｖｒ／ｄｅｃ））
ｎ＝ｎａ＋ｎｄ
ここで、ａｂｓ（ｘ）はｘの絶対値を求める関数であり、ｎａはロボットが速度０からコンベアの速度に達するまでの制御周期数、ｎｄはロボットが現在速度から速度０に減速するまでの制御周期数である。
【００３４】
ステップＳＴ１６では、ｎｄが０でない正の整数であるか否かを判断し、０でない正の整数の場合はステップＳＴ１７へ進み、０の場合はステップＳＴ２０へ進む。
【００３５】
ステップＳＴ１７では、制御周期ｎでロボットがワークに追いつくために必要な次制御周期ロボット追従移動量ｖｎを次式から求める。
ｘｃ＝ｄ＋ｖｃ×（ｎ−１）
ｘｒ＝ｎａ×（ｎａ−１）×ａｃｃ／２
ｖｎ＝（ｘｃ−ｘｒ）／ｎｄ−（ｎｄ−１）×ｄｅｃ／２
ここで、ｘｃ，ｘｒはそれぞれｎ制御周期後までのワーク、ロボットの移動量である。
【００３６】
ステップＳＴ１６でｎｄが０の場合はステップＳＴ２０に進み、ｖｃと次制御周期最小追従移動量ｖｄの比較を行い、ｖｃの方が大きい場合はステップＳＴ２１に進み、そうでない場合はステップＳＴ２２に進む。
【００３７】
ステップＳＴ２１では次式により、ｖｎを求める。
ｎ＝ｉｎｔ（（ｖｃ−ｖｄ）／ａｃｃ）＋１
ｘｃ＝ｄ＋ｖｃ×（ｎ−１）
ｖｎ＝ｘｃ／ｎ−ａｃｃ×（ｎ−１）／２
ここで、ｘｃはロボットがワークに追いつくまでにワークが移動する量である。
【００３８】
一方、ステップＳＴ２０でｖｃがｖｄと等しいか、またはｖｄより小さい場合、ロボットとコンベアは等速度と考えられるので、ｖｎ＝ｄとする。
【００３９】
ステップＳＴ１８では、ｖｎとｖａを比較し、ｖｎがｖａより小さい場合はステップＳＴ１９に進み、ｖｎの値をｖａに修正する。また、ステップＳＴ１８でｖｎがｖａより小さくない場合は、ステップＳＴ２３に進み、ｖｎとｖｄを比較する。ステップＳＴ２３で、ｖｎがｖｄより大きい場合はステップＳＴ２４でｖｎの値をｖｄに修正する。ｖｎがｖｄより大きくない場合は、ステップＳＴ１７，ＳＴ２１，ＳＴ２２で求めたｖｎの値をそのまま用いる。
【００４０】
以上のようにして求めたロボット追従移動量Ｖｎは指令パルス生成部２１に出力される。また、次式で追従誤差Ｒi+1を次式により求め、追従誤差データ記憶部２８に保存される。
Ｒi+1＝Ｒi＋ｄＣi−Ｖｎ
【００４１】
動作制御部２０では、ロボットプログラムに従った動作指令値を生成し、指令パルス生成部２１に出力する。指令パルス生成部２１では、動作制御部２０で生成された指令値と、追従移動量生成部２７で生成された追従移動量を合成し、得られた指令データを逆変換してサーボモータのパルスデータをサーボ制御部２２に出力する。サーボ制御部２２では、指令パルス生成部２１で生成されたパルスデータに従ってロボットのサーボモータを制御することにより、ロボットに所望の動作をさせる。
【００４２】
図４はコンベア速度とロボットの追従速度の変化を表す説明図である。図において、ｖｃはコンベア速度、ｖｒはロボットの追従速度を表す。時刻ｔ０にロボットはコンベアに対し追従作業を開始し、追従後れを取り戻すため、時刻ｔ１まで制御周期ごとに次制御周期の追従速度を図２、図３の手順によって求め、加速する。時刻ｔ１において次制御周期の追従速度を計算すると、このまま加速するとコンベア上の目的位置を追い越してしまうため減速に入る。時刻ｔ２ではコンベアの速度がｖ１からｖ２に高速に変化したため、再びロボットの追従速度も加速し、時刻ｔ３で、目的位置を追い越さないように減速をはじめ、時刻ｔ４でコンベアに追いつく。
【００４３】
実施の形態１では、ロボットの動作可能な最大速度、最大加減速度(加速パターン、減速パターン)を考慮して、追従移動量を決定するようにしたので、コンベアの速度に変動があっても高速にワークに追従することが可能となる。実施の形態１では加速パターン、減速パターンとして１制御周期追従加速量及び減速量を用いた例を示したが、加速時間、減速時間を用いてもよい。なお、コンベア速度に対し、ロボットの最高速度が十分速い場合、ロボットの最大速度を考慮せずに追従移動量を決定してもよい。
【００４４】
また、滑らかに加減速を行うので、振動を起こさずに追従でき、高精度に追従作業が可能となる。
【００４５】
また、コンベアエンコーダの最大値、最小値を自由に決定できるので、長いコンベアでの追従作業が可能である。さらに、エンコーダ値に対してフィルタをかけることができるので、コンベアが振動的であっても滑らかに追従することが可能である。
【００４６】
上記実施の形態１では、追従遅れ補正部２６において、ｂ＝１／ＫＴ＋ｃ＋１という式を用いて追従遅れ補正量を求めたが、あらかじめコンベアの移動量ごとやロボットの位置、姿勢ごとに補正量を求め、テーブルとして記憶し、動作時にはロボットの現在の位置や速度から補正量をテーブルのデータから補間して求めてもよい。また、補正量の代わりにｂの値をテーブルに記憶しておいてもよい。図５は補正係数ｂの値をロボットの位置ｘの値ごとに記憶したテーブルである。追従遅れ補正部２６で追従遅れ補正量を計算するときにロボットの現在位置を示すｘの値がｘ１＜ｘ＜ｘ２であったとすると次式で補正係数ｂを求める。
ｂ＝（ｂ２−ｂ１）（ｘ−ｘ１）／（ｘ２−ｘ１）＋ｂ１
このｂの値を用いて補正量を求めることにより、ロボットの位置による追従誤差をなくすことが可能である。上記実施の形態１では、ロボットの位置、姿勢ごとに補正量を求めているが、このほか、ロボットの状態を表す量、またはコンベアの速度等の状態を表す量を用いてもよい。従って、追従遅れ補正部であらかじめ記憶領域に記憶された搬送装置の速度やロボットの位置姿勢ごとの補正データを用いて追従補正を行うため、搬送装置の速度変動、ロボットの位置姿勢によらず高精度な追従作業が可能となるという効果がある。
【００４７】
また、上記実施の形態１では、追従遅れ補正部２６において、補正係数bをロボットの位置姿勢から動的に計算して求めても同様な効果が得られることはいうまでもない。
【００４８】
上記実施の形態１では、過渡追従遅れ補正量生成部２７で生成したロボット追従移動量を直接指令パルス生成部に渡したが、指令値を滑らかにするため、最近のｍ制御周期分追従移動量を平均してもよい。その場合、追従遅れ補正部２６のｂにｍを加える、例えば、ｂをｂ＝１／ＫＴ＋ｃ＋１と言う式を用いて求めている場合、ｂ＝１／ＫＴ＋ｃ＋ｍ＋１とすることによって、平均することによる遅れを補正することができる。
【００４９】
上記実施の形態１では、仮想エンコーダ値生成部２４において、コンベアのエンコーダ値を仮想エンコーダ値に変換していたが、エンコーダ値検出部２３のカウンタのビット数が追従作業領域に対し、十分大きい場合や、コンベアの動作が振動的でない場合は図６に示すように、図１に示す仮想エンコーダ値生成部２４がない構成でも同様の効果があることは言うまでもない。図６の構成では、エンコータ値検出部２３により検出されたエンコーダ値が直接コンベア移動量生成部２５へ送られ、このエンコータ値に基づきコンベア移動量が演算される。
【００５０】
上記実施の形態１では、コンベアエンコーダによってコンベアの位置を把握し、コンベアに追従しながら作業を行う場合について述べたが、コンベア以外の搬送装置、例えば、ｘｙテーブルや他のロボットによって搬送される場合でも、それらの現在位置を直接コントローラに入力することによって同様に追従作業が可能である。
【００５１】
実施の形態２．
図７は、この発明を実施するための実施の形態２によるロボット制御装置を説明するための図である。図において、図１と同一の符号を付したものは、同一またはこれに相当するものである。また、図７において、２９は関節追従遅れ補正部であり、指令パルス生成部２１で生成された各関節ごとの指令パルスに対し、追従遅れを補正する。
【００５２】
次に動作について説明する。コンベアエンコーダ４、エンコーダ値検出部２３、コンベア移動量生成部２５は実施の形態１と同様の動作を行う。追従移動量生成部２７では、実施の形態１では追従遅れ補正部で生成された次の１制御周期における推定コンベア移動量の代わりに、コンベア移動量生成部２５で生成されたコンベア移動量を用いてロボットの追従移動量を生成する。生成方法は、実施の形態１と同様である。
【００５３】
動作制御部２０では、ロボットプログラムに従った動作指令値を生成し、指令パルス生成部２１に出力する。指令パルス生成部２１では、動作制御部２０で生成された指令値と、追従移動量生成部２７で生成された追従移動量を合成し、得られた指令データを逆変換してサーボモータのパルスデータを関節追従遅れ補正部２９に出力する。
【００５４】
関節追従遅れ補正部２９では、各関節ごとに遅れ量を補正する。実施の形態１では、追従遅れ補正部でコンベアの移動量から次制御周期のコンベア推定移動量を求めたが、関節追従遅れ補正部２９では、コンベア移動量の代わりにロボット関節移動量を用いて追従遅れ分補正した関節移動量を生成する。
【００５５】
サーボ制御部２２に出力する。サーボ制御部２２では、関節追従遅れ補正部２９で生成されたパルスデータに従ってロボットのサーボモータを制御することにより、ロボットに所望の動作をさせる。
【００５６】
上記実施の形態２では、各関節ごとに遅れ量を補正するように構成したので、より高精度な追従作業が可能となる。
【００５７】
また、上記実施の形態２では、コンベアエンコーダによってコンベアの位置を把握し、コンベアに追従しながら作業を行う場合について述べたが、コンベア以外の搬送装置、例えば、ｘｙテーブルや他のロボットによって搬送される場合でも、それらの現在位置を直接コントローラに入力することによって同様に追従作業が可能である。
【図面の簡単な説明】
【００５８】
【図１】この発明の実施の形態１によるロボット制御装置を説明するための構成図である。
【図２】この発明の実施の形態１による追従移動量の生成手順を説明するためのフロー図である。
【図３】この発明の実施の形態１による追従移動量の生成手順を説明するためのフロー図である。
【図４】この発明の実施の形態１によるロボットと搬送装置の速度と時間の関係を説明するための図である。
【図５】この発明の実施の形態１による追従補正データの記憶領域を説明するための図である。
【図６】この発明の実施の形態１によるロボット制御装置を説明するための構成図である。
【図７】この発明の実施の形態２によるロボット制御装置を説明するための構成図である。
【図８】従来のロボット制御装置を説明するための構成図である。
【符号の説明】
【００５９】
１  ロボット、２  ロボット制御装置、３  搬送装置、４  コンベアエンコーダ、２０  動作制御部、２１  指令パルス生成部、２２  サーボ制御部、２３  搬送装置位置検出部、２４  仮想搬送装置位置生成部、２５  搬送装置移動量生成部、２６  追従遅れ補正部、２７  追従移動量生成部、２８  追従誤差記憶部、２９  関節追従遅れ補正部。
【図１】
2007290128.tif 000004
【図２】
2007290128.tif 000005
【図３】
2007290128.tif 000006
【図４】
2007290128.tif 000007
【図５】
2007290128.tif 000008
【図６】
2007290128.tif 000009
【図７】
2007290128.tif 000010
【図８】
2007290128.tif 000011