ロボットシステム
【課題】異物に衝突したか否かにかかわらず、振動的な動作を伴うことなく且つ機構部品に損傷を与えることなくロボットを緊急停止させることができるロボットシステムを提供する。
【解決手段】緊急停止モードにおいて、位置制御部31は、上位制御部から与えられる位置指令pcにかかわらず出力する速度指令vcをゼロに固定し、通常の位置制御は行わない。速度制御部32は、モータMの回転速度v*をゼロに固定された速度指令vcに一致させるように電流指令演算値ic’を演算するとともに、その電流指令演算値ic’に対して所定のフィルタ制御を行って電流指令icの変化量を所定の制限値以下に制限する。
【解決手段】緊急停止モードにおいて、位置制御部31は、上位制御部から与えられる位置指令pcにかかわらず出力する速度指令vcをゼロに固定し、通常の位置制御は行わない。速度制御部32は、モータMの回転速度v*をゼロに固定された速度指令vcに一致させるように電流指令演算値ic’を演算するとともに、その電流指令演算値ic’に対して所定のフィルタ制御を行って電流指令icの変化量を所定の制限値以下に制限する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、緊急停止指令が入力されることにより、ロボットの動作を直ちに停止させる制御を行うロボットシステムに関する。
【背景技術】
【0002】
ロボットシステムでは、非常時にロボットのアームの動作を直ちに停止させる緊急停止制御を行うようになっている。この緊急停止制御では、ロボットの各軸を駆動するモータに逆転トルクを発生させつつ、その後の移動軌跡に沿ってアームの動作を停止させる。すなわち、上記緊急停止制御では、現在位置を指令位置に一致させる位置制御を実行しながらロボットの動作を停止させていた。
【0003】
このような緊急停止時には、通常動作における停止時に比べて高い加速度(減速度)での停止動作となる。従って、上記緊急停止制御では、高い加速度により停止動作を行うにもかかわらず位置制御を行うため、ロボットのアームの動きが振動的になる可能性がある。すなわち、ロボットのアームが目標の停止位置を一旦通り過ぎてから再び戻るように停止することがある。このような振動的な動作を、ロボットを操作する者(操作者)が予期することは難しい。このため、緊急停止時の操作者の安全性が低下するおそれがあった。
【0004】
また、上記した振動的な動作においてアームの移動方向が反転する瞬間には、大きな逆転トルクが発生してロボットの関節に多大な負荷がかかることになる。このように関節に大きな負荷がかかると、関節を構成する機構部品に損傷を与えたり、それら部品間の締結が緩んだりする可能性がある。ロボットシステムでは、関節部分が正常であることを前提としてモータをフィードバック制御し、ロボットの動作制御を行っているので、関節部分に上記問題が生じると精度のよい動作制御ができない。
【0005】
これに対し、特許文献1には、ロボットの衝突後の停止制御方法が開示されている。すなわち、特許文献1記載の技術では、ロボットが異物に衝突したことを検出すると、衝突を検知した軸を駆動するサーボモータへの速度指令をゼロにすることで逆転トルクを発生させて、できるだけ短時間でロボットの動作を停止させている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平3−281194号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1記載の技術によれば、ロボットが異物に衝突したことで緊急停止を行う必要が生じた場合には、ロボットの動作を短時間で停止させることができる。しかし、このような特許文献1記載の技術をロボットが異物に衝突することなく緊急停止を行う場合に適用すると次のような問題が生じる。
【0008】
すなわち、アームが衝突する瞬間にはモータの回転速度はほとんどゼロとなる。従って、衝突した時点から回転速度をゼロに低下させるために発生させる逆転トルクは比較的小さい。このため、逆転トルクによって関節部に加わる負荷も小さい。これに対し、アームが異物に衝突することなく緊急停止をさせる場合には、停止動作を開始する瞬間のモータの回転速度は、それ以前の回転速度とほぼ同じである。従って、停止動作の開始時点から回転速度をゼロに停止させるために発生させる逆転トルクは大きなものとなる。このため、逆転トルクによって関節部に加わる負荷も大きくなってしまう。
【0009】
本発明は上記事情に鑑みてなされたものであり、その目的は、異物に衝突したか否かにかかわらず、振動的な動作を伴うことなく且つ機構部品に損傷を与えることなくロボットを緊急停止させることができるロボットシステムを提供することにある。
【課題を解決するための手段】
【0010】
請求項1記載の手段によれば、ロボットの動作を最短距離で停止させるように指令する緊急停止指令が入力されていないとき、つまり通常時の動作は次のように行われる。すなわち、位置制御部は、位置検出部により検出されるモータの回転位置を、上位制御部から与えられる位置指令に一致させるように速度指令を出力する位置制御を行う。速度制御部は、速度演算部により演算されるモータの回転速度を、位置制御部から与えられる速度指令に一致させるようにモータに所定のトルクを発生させるための電流指令を出力する速度制御を行う。電流制御部は、電流検出部により検出されるモータに流れる電流を、速度制御部から与えられる電流指令に一致させるようにモータの通電指令を駆動部に対して出力する。このような位置制御、速度制御および電流制御が行われることにより、ロボットの各軸を駆動するモータの駆動がフィードバック制御される。
【0011】
一方、上記緊急停止指令が入力手段を介して入力されたとき、つまり緊急停止時の動作は次のように行われる。すなわち、位置制御部は、上位制御部から与えられる位置指令にかかわらず、出力する速度指令をゼロに固定する。そして、速度制御部は、以下のようなフィルタ制御を行う。このフィルタ制御において、速度制御部は、今回のサンプリング時点において通常時と同様に求めた電流指令である今回電流指令と、前回のサンプリング時点における電流指令である前回電流指令との差を求める。この差は、前回のサンプリング時点から今回のサンプリング時点にかけての電流指令の変化量(増加量または減少量)に相当する。この変化量が予め定められた所定の制限変化量以下である場合には、今回電流指令を電流指令として電流制御部に出力する。また、変化量が制限変化量より大きく、且つ増加量である場合には、前回電流指令に対し、プラスの符号を付した制限変化量を加えたものを電流指令として電流制御部に出力する。また、変化量が制限変化量より大きく、且つ減少量である場合には、前回電流指令に対し、マイナスの符号を付した制限変化量を加えたものを電流指令として電流制御部に出力する。このフィルタ動作は、位置制御部から出力される速度指令がゼロに固定されているため、モータの回転速度がゼロになるまで継続される。
【0012】
緊急停止時には、上記動作が行われることでモータの駆動を停止する方向に働く電流(逆転トルク)の変化量が所定の制限変化量以下に抑えられる。従って、例えば緊急停止指令が入力された直後などに多大な逆転トルクが発生し、ロボットを構成する機構部品に過大な負担がかかり損傷を与えてしまう事態を未然に防止できる。また、この緊急停止時には、位置制御部から出力される速度指令はゼロに固定されており、通常の位置制御は行われない。このため、速度制御部は、位置制御による制限を受けることなく、回転速度をゼロに収束させるべく速度制御を実行する。従って、振動的な動作を伴うことなく、ロボットを最短距離で緊急停止させることができる。
【0013】
本手段によれば、通常、ロボットのモータ制御に用いられる位置制御を実行する位置制御部および速度制御を実行する速度制御部に対し、緊急停止指令が入力されたときの上記制御内容を追加するだけで上記各効果が得られる。このため、既存の緊急停止制御からの修正が容易であり、また、制御部の制御内容を簡素化することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態を示すロボットシステムの電気構成図
【図2】モータ制御の内容を等価的に示すブロック図
【図3】ロボットシステムの構成を概略的に示す図
【図4】割り込み制御の内容を示すフローチャート
【図5】位置制御部の制御内容を示すフローチャート
【図6】速度制御部の制御内容を示すフローチャート
【図7】電流制御部の制御内容を示すフローチャート
【図8】フィルタ制御の内容を示すフローチャート
【図9】緊急停止時における電流指令および電流指令演算値の変化を表す図
【図10】緊急停止時における回転速度を表す図
【図11】緊急停止時における電流指令を表す図
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態について図面を参照しながら説明する。
図3は、一般的な産業用ロボットのシステム構成を示している。この図3に示すロボットシステム1は、ロボット2と、ロボット2を制御するコントローラ3と、コントローラ3に接続されたティーチングペンダント4(入力手段に相当)とから構成されている。
ロボット2は、例えば6軸の垂直多関節型ロボットとして構成されている。ロボット2は、ベース5と、このベース5に水平方向に回転可能に支持されたショルダ部6と、このショルダ部6に上下方向に回転可能に支持された下アーム7と、この下アーム7に上下方向に回転可能に支持された第1の上アーム8と、この第1の上アーム8に捻り回転可能に支持された第2の上アーム9と、この第2の上アーム9に上下方向に回転可能に支持された手首10と、この手首10に捻り回転可能に支持されたフランジ11とから構成されている。
【0016】
ベース5、ショルダ部6、下アーム7、第1の上アーム8、第2の上アーム9、手首10およびフランジ11は、ロボット2のアームとして機能し、アーム先端であるフランジ11には、図示はしないが、エンドエフェクタ(手先)が取り付けられる。ロボット2に設けられる複数の軸はそれぞれに対応して設けられるモータ(図1に符号Mを付して示す)により駆動される。各モータの近傍には、それぞれの回転軸の回転位置を検出するための位置検出器(図示せず)が設けられている
ティーチングペンダント4は、例えば使用者が携帯あるいは手に所持して操作可能な程度の大きさで、例えば薄型の略矩形箱状に形成されている。ティーチングペンダント4には、各種のキースイッチ12が設けられており、使用者は、キースイッチ12により種々の入力操作を行う。このキースイッチ12には、後述する緊急停止を指示するための緊急停止スイッチが含まれている。使用者は、この緊急停止スイッチを操作することで、ロボット2の動作(アームの動作)を最短距離で停止させることができるようになっている。ティーチングペンダント4は、ケーブルを経由してコントローラ3に接続され、通信インターフェイスを経由してコントローラ3との間で高速のデータ転送を実行するようになっており、キースイッチ12の操作により入力された操作信号等の情報はティーチングペンダント4からコントローラ3へ送信される。
【0017】
図1は、ロボットシステム1の電気構成を概略的に示すブロック図である。ロボット2には、各軸をそれぞれ駆動するための複数のモータM(図1では1つのみ示す)が設けられている。モータMはブラシレスDCモータである。コントローラ3には、交流電源21より供給される交流を整流および平滑して出力する直流電源装置22、モータMを駆動するインバータ装置23、電流検出部24、位置検出部25およびこれら各装置の制御などを行う制御部26が設けられている。
【0018】
直流電源装置22は、整流回路27と平滑用のコンデンサ28とから構成されている。整流回路27は、ダイオードをブリッジの形態に接続してなる周知構成のものである。例えば3相200Vの交流電源21の各相出力は、整流回路27の交流入力端子に接続されている。整流回路27の直流出力端子は、それぞれ直流電源線29、30に接続されている。これら直流電源線29、30間にはコンデンサ28が接続されている。
【0019】
インバータ装置23(駆動部に相当))は、直流電源線29、30間に6つのスイッチング素子例えばIGBT(図1には2つのみ示す)を三相フルブリッジ接続して構成されたインバータ主回路と、その駆動回路とを6組備えている(図1には1組のみ示す)。IGBTのコレクタ・エミッタ間には還流ダイオードが接続されている。また、IGBTのゲートには、駆動回路からゲート信号が与えられている。駆動回路は、制御部26から与えられる指令信号(通電指令Sc)に基づいてパルス幅変調されたゲート信号を出力して各IGBTを駆動する。
【0020】
制御部26は、CPU、ROM、RAM、I/Oなどを備えたマイクロコンピュータを主体として構成されている。電流検出部24は、モータMに流れる電流を検出する電流検出器(図示せず)からの検出信号を制御部26に入力可能なデータに変換して出力する。位置検出部25は、モータMの回転位置を検出する位置検出器(図示せず)からの検出信号を制御部26に入力可能なデータに変換して出力する。制御部26は、電流検出部24から出力されるデータを元にモータMに流れる電流の値を取得するとともに、位置検出部25から出力されるデータを元にモータMの回転位置および回転速度を取得する。詳細は後述するが、制御部26は、このようにして取得した電流値、回転位置および回転速度を用いてインバータ装置23によるモータMの駆動をフィードバック制御する。
【0021】
図2は、ロボットシステム1におけるモータ制御の内容を等価的に示したブロック図である。この図2に示すように、制御部26は、位置制御部31、速度制御部32および電流制御部33を備えている。なお、図2では、1つのモータMの制御に係る構成のみを示しているが、実際には全てのモータMのそれぞれに対応して同様の構成が設けられている。さて、一般に産業用のロボットは、予めティーチングなどを実施することにより作成される所定の動作プログラムに従って動作するようになっている。図示しない上位制御部は、その動作プログラムを解釈し、ロボット2に動作プログラムに従った動作を行わせるように各モータMを制御するための指令値(位置指令pc)を位置制御部31に出力する。
【0022】
位置制御部31は、上位制御部から与えられる位置指令pc(モータMの回転位置の指令値)に対する現在の回転位置p*の偏差を求める減算器34と、この減算器34の出力(偏差)をゼロに近づけるように速度指令vcを出力する位置制御アンプ35とから構成されている。この位置制御アンプ35のゲインはKpとなっている。
【0023】
速度制御部32は、微分器36、減算器37、速度制御アンプ38、フィルタ39およびリミッタ40により構成されている。微分器36(速度演算部に相当)は、現在の回転位置p*を微分して現在の回転速度v*に変換する。減算器37は、速度指令vcに対する現在の回転速度v*の偏差を求める。速度制御アンプ38は、この減算器37の出力(偏差)をゼロに近づけるように電流指令演算値ic’を出力する。この速度制御アンプ38のゲインはKvとなっている。フィルタ39は、速度制御アンプ38の出力信号に対し、所定のフィルタ制御(詳細は後述する)を行う。
【0024】
リミッタ40は、フィルタ39の出力信号が所定の上限値および下限値を超えないように制限を与えるリミッタ制御を行う。すなわち、リミッタ40は、フィルタ39の出力信号を上限値および下限値でクリップさせる。なお、これら上限値および下限値は、これらを超える電流がモータMに流れると故障が生じる可能性があるという値であり、モータMの回路定数などに基づいて定められている。リミッタ40は、フィルタ39の出力信号に上記制限を与えた信号を電流指令icとして出力する。
【0025】
電流制御部33は、電流指令icに対する現在のモータMに流れる電流i*の偏差を求める減算器41と、この減算器41の出力(偏差)をゼロに近づけるようにインバータ装置23に対する指令信号(通電指令Sc)を出力する電流制御アンプ42とから構成されている。この電流制御アンプ42のゲインはKiとなっている。このような構成により、制御部26は、電流フィードバック制御、速度フィードバック制御および位置フィードバック制御を行い、モータMの駆動をフィードバック制御してロボット2のアームの動作制御を行う。
【0026】
次に、上記構成の作用について図4〜図11も参照して説明する。
本実施形態では、通常時(通常モード)と緊急停止時(緊急停止モード)とにおいて、制御部26によるモータMの制御動作が変化するようになっている。これら通常モードおよび緊急停止モードは、緊急停止フラグFlgの状態に応じて切り替えられる。この緊急停止フラグFlgは、システムの起動時にリセット(Flg=0)されている。そして、緊急停止フラグFlgは、図4に示す割り込み制御が実行されることでセット(Flg=1)される(図4のステップA1)。
【0027】
この割り込み制御は、ロボット2の動作を緊急停止させるための指令(緊急停止指令)が入力されると実行されるもので、例えばティーチングペンダント4の緊急停止スイッチが操作されたときや、制御部26において何らかの異常(故障)が発生し、以後ロボット2を正常に動作させることが困難であると判断されたときなどに実行される。この割り込み制御が行われて緊急停止フラグFlgがセットされると、モータMの駆動制御によりアームの動作が停止され(詳細は後述する)、その後、インバータ装置23への直流電源の供給が停止される。続いて、モータMの回転軸をロックするブレーキが作動され、その後、上位制御部からの動作プログラムに基づく指令値の出力が停止されるようになっている。
【0028】
最初に、通常モードにおける制御部26によるモータMの制御動作について説明する。通常モードでは、制御部26は、位置フィードバック制御、速度フィードバック制御および電流フィードバック制御を行ってモータMの駆動を制御する。すなわち、位置制御部31は、所定の位置制御周期(例えば500μs)毎に起動し、起動する度に図5のフローチャートに示された内容の制御を実行する。位置制御部31は、最初のステップB1では、モータMの現在の回転位置p*を取得する。続くステップB2では、緊急停止フラグFlgがセットされているか否かを判断する。
【0029】
この場合、緊急停止指令が与えられていないため、緊急停止フラグFlgはリセット(Flg=0)されている(ステップB2で「NO」)。このため、ステップB3をスキップしてステップB4に進み、位置指令pc、回転位置p*および位置ゲインKpを用い、下記(1)式のように速度指令vcを演算する。
vc=Kp×(pc−p*) …(1)
続くステップB5において、上記(1)式に基づいて算出された速度指令vcを速度制御部32に出力して制御を終了する(エンド)。
【0030】
速度制御部32は、所定の速度制御周期(サンプリング周期に相当するものであり、例えば250μs)毎に起動し、起動する度に図6のフローチャートに示された内容の制御を実行する。速度制御部32は、最初のステップC1では、モータMの現在の回転速度v*を取得する。続くステップC2では、速度指令vc、回転速度v*および速度ゲインKvを用い、下記(2)式のように電流指令演算値ic’を演算する。
ic’=Kv×(vc−v*) …(2)
【0031】
この場合、緊急停止指令が与えられていないため、緊急停止フラグFlgはリセット(Flg=0)されている(ステップC3で「NO」)。このため、ステップC4のフィルタ制御は行わずにステップC5に進む。
ステップC5では、上記(2)式に基づいて算出された電流指令演算値ic’に対して所定の制限を与えるリミッタ制御を行う。続くステップC6では、ステップC5にて制限が与えられた電流指令演算値ic’を、電流指令icとして電流制御部33に出力して制御を終了する(エンド)。
【0032】
電流制御部33は、所定の電流制御周期(例えば50μs)毎に起動し、起動する度に図7のフローチャートに示された内容の制御を実行する。電流制御部33は、最初のステップD1では、モータMに流れる電流i*を取得する。続くステップD2では、電流指令ic、電流i*および電流ゲインKiを用い、下記(3)式のように通電指令Scを演算する。
Sc=Ki×(ic−i*) …(3)
続くステップD3において、上記(3)式に基づいて算出された通電指令Scをインバータ装置23に出力して制御を終了する(エンド)。
【0033】
続いて、緊急停止モードにおける制御部26によるモータMの制御動作について説明する。以下では、緊急停止モードでの位置制御部31および速度制御部32の動作について通常モードの場合とは異なる部分を主体に説明する。なお、電流制御部33は、緊急停止モードにおいても通常モードの場合と同様の制御を行うので説明を省略する。
【0034】
緊急停止モードでは、位置制御部31は、上位制御部から与えられる位置指令pcにかかわらず速度指令vcをゼロに固定する。すなわち、この場合、緊急停止フラグFlgがセット(Flg=1)されている(ステップB2で「YES」)ため、ステップB3に進み、位置ゲインKpをゼロにする(Kp=0)。これにより、続くステップB4で求められる速度指令vcがゼロに固定される。そして、ステップB5において、ゼロに固定された速度指令vcを速度制御部32に出力する。
【0035】
緊急停止モードでは、速度制御部32は、電流指令演算値ic’に対してフィルタ制御を行う。すなわち、この場合、緊急停止フラグFlgがセット(Flg=1)されている(ステップC3で「YES」)ため、ステップC4に進みフィルタ制御を実行する。このフィルタ制御の内容は図8に示すものである。まず、最初のステップE1では、前回の速度制御起動時点(1速度制御周期前の時点)から今回の速度制御起動時点(現時点)にかけての電流指令演算値ic’の変化量a(増加量または減少量、傾き)を求める。すなわち、ステップE1では、今回の速度制御起動時にステップC2で演算された電流指令演算値ic’(今回電流指令に相当するものであり、以下ic’(n)と表す)と、前回の速度制御起動時にリミッタ40に出力された電流指令ic(前回電流指令に相当するものであり、以下ic(n−1)と表す)とを用い、下記(4)式のように変化量aを演算する。
a=ic’(n)−ic(n−1) …(4)
【0036】
続くステップE2では、変化量aの絶対値|a|が、制限値alim(制限変化量に相当)を超えているか否かを判断する。変化量aの絶対値|a|が制限値alim以下である場合(ステップE2で「NO」)、ステップE3〜E5をスキップしてステップE6に進む。そして、ステップE6において、今回の電流指令演算値ic’(n)をそのままリミッタ40に出力し、制御を終了する(リターン)。
【0037】
一方、変化量aの絶対値|a|が制限値alimを超えている場合(ステップE2で「YES」)、ステップE3に進む。ステップE3では、変化量aの極性、つまり変化量aが増加量(増加方向の傾き、右肩上がりの傾き)であるのか、減少量(減少方向の傾き、右肩下がりの傾き)であるのかを判断する。変化量aが増加量である場合(YES)にはステップE4に進み、減少量である場合(NO)にはステップE5に進む。
【0038】
ステップE4では、前回の電流指令ic(n−1)に対し、プラスの符号を付した制限値alimを加えたもの(ic(n−1)+alim)を今回の電流指令演算値ic’(n)とする。ステップE5では、前回の電流指令ic(n−1)に対し、マイナスの符号を付した制限値alimを加えたもの(ic(n−1)−alim)を今回の電流指令演算値ic’(n)とする。続くステップE6では、ステップE5において求められた電流指令演算値ic’(n)をリミッタ40に出力し、制御を終了する(リターン)。
【0039】
このようなフィルタ制御が行われることより、緊急停止時において速度制御部32から出力される電流指令icの前回から今回にかけての変化量(増減量)が制限値alim以下に抑えられる。なお、制限値alimは、緊急停止時においてロボット2を構成する機構部品に過大な負担がかからないように電流指令icの変化量を制限できる値に設定すればよい。例えば、事前にロボット2の可動部に加速度計を取り付けた状態で緊急停止させる実験を、電流指令icの変化量を段階的に変化させて行う。そして、実際に機構部品に異常が生じたときの加速度の計測値から機構部に過大な負担がかかる電流(トルク)の変化量の限界値を求め、その限界値に基づいて制限値alimを設定すればよい。
【0040】
続いて、緊急停止時において速度制御部32から出力される電流指令icがどのように変化するかについて図9も参照しながら説明する。なお、図9では、電流指令icを実線で示し、電流指令演算値ic’を破線で示し、変化量aの制限値alimを二点鎖線で示し、リミッタ40の下限値を一点鎖線で示している。また、図9では、中央の実線(電流指令=0を示す実線)を挟んで、上側がモータMを正転方向(所定のアーム動作を行わせるための回転方向)に回転させる電流(トルク)であり、下側がモータMを逆転方向(所定のアーム動作を停止させるための回転方向)に回転させる電流(トルク)である。なお、図9中に示す時刻t0〜t18は、いずれも速度制御部32が起動される時点(サンプリング時点に相当)を表している。また、図9では、時刻t0〜t1の間に緊急停止指令が入力され、時刻t18の時点でアームの動作が停止される場合を想定している。
【0041】
緊急停止指令が入力された後、最初に速度制御部32が起動する時刻t1では、モータMを正転方向に回転する所定の回転速度v*を一気にゼロにすべく、時刻t1〜t2の間の電流指令演算値ic’は、右肩下がりに急激に変化する。しかし、この電流指令演算値ic’の変化量a(傾き)は、制限値alimよりも大きい。従って、時刻t1〜t2の間の電流指令icは、その変化量(傾き)が制限値alimに一致するように制限される。
【0042】
これにより、時刻t1〜t2の間において発生する正転方向の電流(トルク)が緩やかに減少され、回転速度v*も緩やかに低下する。このため、続く時刻t2〜t3の間の電流指令演算値ic’の変化量aは、若干小さくなる。しかし、その変化量が未だ制限値alimより大きいため、時刻t2〜t3の間の電流指令icについても、変化量が制限値alimに一致するように制限される。時刻t3〜t4の間および時刻t4〜t5の間についても、上記同様に、電流指令icの変化量が制限値alimに一致するように制限される。
【0043】
続く時刻t5〜t6の間、時刻t6〜t7の間および時刻t7〜t8の間では、演算された電流指令演算値ic’の変化量aは制限値alim以下になる。従って、これらの間では、演算された電流指令演算値ic’がそのまま電流指令icとして出力される。このようにして、電流指令icは、その変化量(傾き)が制限値alim以下となるように、時刻t1の時点の値から緩やかに低下していき、時刻t8の時点で下限値に達する。
【0044】
電流指令演算値ic’および電流指令icは、下限値に達した後(時刻t8〜t10の間)は、リミッタ制御によりその下限値を超えて低下することなくその値が維持される。その後、時刻t10〜時刻t18の間は、電流指令演算値ic’が右肩上がりに緩やかに変化する。この間の電流指令演算値ic’の変化量aについても制限値alim以下となっているので、電流指令演算値ic’がそのまま電流指令icとして出力される。その後、時刻t18の時点において、アームの動作が停止されることで回転速度v*が速度指令vc(=0)と等しくなり、電流指令icがゼロになる。
【0045】
以上説明したように、本実施形態によれば次のような効果が得られる。
緊急停止モードでは、位置制御部31は、上位制御部から与えられる位置指令pcにかかわらず速度指令vcをゼロに固定し、通常の位置制御は行わない。このため、本実施形態によれば、緊急停止時にも通常の位置制御を行いながらアームの動作を停止させていた従来技術と比較し、次のような優れた効果を奏する。図10は、緊急停止時のモータMの回転速度の変化について本実施形態と従来技術とを比較したものである。図10では、本実施形態における回転速度を実線で示し、従来技術における回転速度を破線で示している。なお、図10では、時刻taの時点で緊急停止指令が入力された場合を想定している。
【0046】
この図10に示すように、従来技術の場合、時刻taの時点で緊急停止指令が入力された後、所定の制御遅れ時間だけ経過した時刻tbの時点からモータMの回転速度が低下する。この際、緊急停止であるため、通常動作時と比べて高い減速度(加速度)で速度が低下する。ここで、ロボット2の姿勢や把持している物体の重量によっては、この加速度がモータMの出力に対して過大となる場合がある。このような場合には、回転速度v*をゼロに合わせることができずにオーバーシュートしてしまう(図10の時刻tc〜tdの間)。さらに、このときも位置制御が行われているため、回転位置p*を位置指令pcに合わせるべく回転速度v*を再び上昇させる。このような動作が、回転位置p*が位置指令pcに等しくなるまで繰り返されることで回転速度v*が振動的になる(時刻tc〜te)。その結果、緊急停止時におけるアームの動きが振動的になってしまう。
【0047】
これに対し、本実施形態の場合、時刻taの時点で緊急停止指令が入力された後、所定の制御遅れ時間だけ経過した時刻tbの時点からモータMの回転速度が低下する点は従来技術と同じである。しかし、位置制御部31は、速度指令vcをゼロに固定して通常の位置制御を行わないので、速度制御部32は、位置制御による制限を受けることなく、回転速度v*をゼロに収束させるべく速度制御を実行する。その結果、回転速度v*は、振動的になることなく、時刻tb〜時刻tfの間に緩やかに低下し、アームの動作を最短距離で停止させることができる。
【0048】
また、緊急停止モードでは、速度制御部32は、ゼロに固定された速度指令vcと回転速度v*との差に基づいて演算される電流指令演算値ic’に対しフィルタ制御を行い、電流指令icの傾きを所定の制限値alim以下に制限する。このため、本実施形態によれば、緊急停止時に速度指令vcをゼロに固定するだけでは得られない次のような優れた効果を奏する。図11では、本実施形態における電流指令icを実線で示し、フィルタ制御を行わない場合における電流指令icを破線で示している。なお、図11において、本実施形態に係る部分については図9と同じとなっている。
【0049】
この図9に示すように、フィルタ制御を行わない場合、緊急停止指令が入力された後の最初の制御起動時(時刻t1)に回転速度v*を一気にゼロにすべく、電流指令icが反転方向(逆転方向)に急激に変化する。すなわち、緊急停止指令が入力された直後において多大な逆転トルクが発生する(時刻t1〜t2)。この電流(トルク)の大きな変化は、躍度(加加速度)が大きいことになる。その結果、ロボット2を構成する機構部品に過大な負担がかかり損傷を与えてしまう危険性がある。
【0050】
これに対し、本実施形態の場合、緊急停止指令が入力された後の最初の制御起動時(時刻t1)から電流指令演算値ic’に対しフィルタ制御を行い、電流指令icの傾きを所定の制限値alim以下に制限する。すなわち、モータMの駆動を停止する方向に働く電流(逆転トルク)の変化量が所定の制限値以下に抑えられる。このため、本実施形態によれば、緊急停止する際に機構部品に過大な負担をかけることがなくなるため、関節を構成する機構部品に損傷を与えたり、それら部品間の締結が緩んだりすることがない。従って、緊急停止した後にロボット2を再度起動する際、関節部分に問題がないので動作制御の精度が低下することがない。
【0051】
また、ロボットシステム1では、一般にロボット2のモータMの制御に用いられる位置制御部31および速度制御部32に対し、緊急停止指令が入力されたときの上記制御内容(速度指令vcをゼロに固定するとともに電流指令演算値ic’に対しフィルタ制御を行う)を追加するだけで上記各効果が得られる。このため、既存の緊急停止制御からの修正が容易であり、また、制御部26の制御内容を簡素化することができる。
【0052】
なお、本発明は上記し且つ図面に記載した実施形態に限定されるものではなく、次のような変形または拡張が可能である。
速度制御部32におけるリミッタ40は必要に応じて設ければよい。リミッタ40を省略する場合にはフィルタ39の出力信号が電流指令icとなる。
電流指令演算値ic’の変化量aが増加量である場合、それまでの期間に回転速度v*が十分に低下されていることが多く、そのときの変化量aは制限値alim以下である可能性が高い。このような場合には、図8に示すフィルタ制御におけるステップE4は省略してもよい。すなわち、変化量aが増加量である場合(ステップE3で「YES」)には、ステップE6に進み、今回の電流指令演算値ic’(n)をそのまま電流指令icとしてリミッタ40に出力してもよい。
上記実施形態では、本発明を6軸の垂直多関節型のロボット2に適用した例を説明したが、本発明は、各軸をモータにより駆動する構成のロボット全般に適用可能である。
【符号の説明】
【0053】
図面中、1はロボットシステム、2はロボット、4はティーチングペンダント(入力手段)、23はインバータ装置(駆動部)、24は電流検出部、25は位置検出部、26は制御部、31は位置制御部、32は速度制御部、33は電流制御部、36は微分器(速度演算部)、Mはモータを示す。
【技術分野】
【0001】
本発明は、緊急停止指令が入力されることにより、ロボットの動作を直ちに停止させる制御を行うロボットシステムに関する。
【背景技術】
【0002】
ロボットシステムでは、非常時にロボットのアームの動作を直ちに停止させる緊急停止制御を行うようになっている。この緊急停止制御では、ロボットの各軸を駆動するモータに逆転トルクを発生させつつ、その後の移動軌跡に沿ってアームの動作を停止させる。すなわち、上記緊急停止制御では、現在位置を指令位置に一致させる位置制御を実行しながらロボットの動作を停止させていた。
【0003】
このような緊急停止時には、通常動作における停止時に比べて高い加速度(減速度)での停止動作となる。従って、上記緊急停止制御では、高い加速度により停止動作を行うにもかかわらず位置制御を行うため、ロボットのアームの動きが振動的になる可能性がある。すなわち、ロボットのアームが目標の停止位置を一旦通り過ぎてから再び戻るように停止することがある。このような振動的な動作を、ロボットを操作する者(操作者)が予期することは難しい。このため、緊急停止時の操作者の安全性が低下するおそれがあった。
【0004】
また、上記した振動的な動作においてアームの移動方向が反転する瞬間には、大きな逆転トルクが発生してロボットの関節に多大な負荷がかかることになる。このように関節に大きな負荷がかかると、関節を構成する機構部品に損傷を与えたり、それら部品間の締結が緩んだりする可能性がある。ロボットシステムでは、関節部分が正常であることを前提としてモータをフィードバック制御し、ロボットの動作制御を行っているので、関節部分に上記問題が生じると精度のよい動作制御ができない。
【0005】
これに対し、特許文献1には、ロボットの衝突後の停止制御方法が開示されている。すなわち、特許文献1記載の技術では、ロボットが異物に衝突したことを検出すると、衝突を検知した軸を駆動するサーボモータへの速度指令をゼロにすることで逆転トルクを発生させて、できるだけ短時間でロボットの動作を停止させている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平3−281194号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1記載の技術によれば、ロボットが異物に衝突したことで緊急停止を行う必要が生じた場合には、ロボットの動作を短時間で停止させることができる。しかし、このような特許文献1記載の技術をロボットが異物に衝突することなく緊急停止を行う場合に適用すると次のような問題が生じる。
【0008】
すなわち、アームが衝突する瞬間にはモータの回転速度はほとんどゼロとなる。従って、衝突した時点から回転速度をゼロに低下させるために発生させる逆転トルクは比較的小さい。このため、逆転トルクによって関節部に加わる負荷も小さい。これに対し、アームが異物に衝突することなく緊急停止をさせる場合には、停止動作を開始する瞬間のモータの回転速度は、それ以前の回転速度とほぼ同じである。従って、停止動作の開始時点から回転速度をゼロに停止させるために発生させる逆転トルクは大きなものとなる。このため、逆転トルクによって関節部に加わる負荷も大きくなってしまう。
【0009】
本発明は上記事情に鑑みてなされたものであり、その目的は、異物に衝突したか否かにかかわらず、振動的な動作を伴うことなく且つ機構部品に損傷を与えることなくロボットを緊急停止させることができるロボットシステムを提供することにある。
【課題を解決するための手段】
【0010】
請求項1記載の手段によれば、ロボットの動作を最短距離で停止させるように指令する緊急停止指令が入力されていないとき、つまり通常時の動作は次のように行われる。すなわち、位置制御部は、位置検出部により検出されるモータの回転位置を、上位制御部から与えられる位置指令に一致させるように速度指令を出力する位置制御を行う。速度制御部は、速度演算部により演算されるモータの回転速度を、位置制御部から与えられる速度指令に一致させるようにモータに所定のトルクを発生させるための電流指令を出力する速度制御を行う。電流制御部は、電流検出部により検出されるモータに流れる電流を、速度制御部から与えられる電流指令に一致させるようにモータの通電指令を駆動部に対して出力する。このような位置制御、速度制御および電流制御が行われることにより、ロボットの各軸を駆動するモータの駆動がフィードバック制御される。
【0011】
一方、上記緊急停止指令が入力手段を介して入力されたとき、つまり緊急停止時の動作は次のように行われる。すなわち、位置制御部は、上位制御部から与えられる位置指令にかかわらず、出力する速度指令をゼロに固定する。そして、速度制御部は、以下のようなフィルタ制御を行う。このフィルタ制御において、速度制御部は、今回のサンプリング時点において通常時と同様に求めた電流指令である今回電流指令と、前回のサンプリング時点における電流指令である前回電流指令との差を求める。この差は、前回のサンプリング時点から今回のサンプリング時点にかけての電流指令の変化量(増加量または減少量)に相当する。この変化量が予め定められた所定の制限変化量以下である場合には、今回電流指令を電流指令として電流制御部に出力する。また、変化量が制限変化量より大きく、且つ増加量である場合には、前回電流指令に対し、プラスの符号を付した制限変化量を加えたものを電流指令として電流制御部に出力する。また、変化量が制限変化量より大きく、且つ減少量である場合には、前回電流指令に対し、マイナスの符号を付した制限変化量を加えたものを電流指令として電流制御部に出力する。このフィルタ動作は、位置制御部から出力される速度指令がゼロに固定されているため、モータの回転速度がゼロになるまで継続される。
【0012】
緊急停止時には、上記動作が行われることでモータの駆動を停止する方向に働く電流(逆転トルク)の変化量が所定の制限変化量以下に抑えられる。従って、例えば緊急停止指令が入力された直後などに多大な逆転トルクが発生し、ロボットを構成する機構部品に過大な負担がかかり損傷を与えてしまう事態を未然に防止できる。また、この緊急停止時には、位置制御部から出力される速度指令はゼロに固定されており、通常の位置制御は行われない。このため、速度制御部は、位置制御による制限を受けることなく、回転速度をゼロに収束させるべく速度制御を実行する。従って、振動的な動作を伴うことなく、ロボットを最短距離で緊急停止させることができる。
【0013】
本手段によれば、通常、ロボットのモータ制御に用いられる位置制御を実行する位置制御部および速度制御を実行する速度制御部に対し、緊急停止指令が入力されたときの上記制御内容を追加するだけで上記各効果が得られる。このため、既存の緊急停止制御からの修正が容易であり、また、制御部の制御内容を簡素化することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態を示すロボットシステムの電気構成図
【図2】モータ制御の内容を等価的に示すブロック図
【図3】ロボットシステムの構成を概略的に示す図
【図4】割り込み制御の内容を示すフローチャート
【図5】位置制御部の制御内容を示すフローチャート
【図6】速度制御部の制御内容を示すフローチャート
【図7】電流制御部の制御内容を示すフローチャート
【図8】フィルタ制御の内容を示すフローチャート
【図9】緊急停止時における電流指令および電流指令演算値の変化を表す図
【図10】緊急停止時における回転速度を表す図
【図11】緊急停止時における電流指令を表す図
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態について図面を参照しながら説明する。
図3は、一般的な産業用ロボットのシステム構成を示している。この図3に示すロボットシステム1は、ロボット2と、ロボット2を制御するコントローラ3と、コントローラ3に接続されたティーチングペンダント4(入力手段に相当)とから構成されている。
ロボット2は、例えば6軸の垂直多関節型ロボットとして構成されている。ロボット2は、ベース5と、このベース5に水平方向に回転可能に支持されたショルダ部6と、このショルダ部6に上下方向に回転可能に支持された下アーム7と、この下アーム7に上下方向に回転可能に支持された第1の上アーム8と、この第1の上アーム8に捻り回転可能に支持された第2の上アーム9と、この第2の上アーム9に上下方向に回転可能に支持された手首10と、この手首10に捻り回転可能に支持されたフランジ11とから構成されている。
【0016】
ベース5、ショルダ部6、下アーム7、第1の上アーム8、第2の上アーム9、手首10およびフランジ11は、ロボット2のアームとして機能し、アーム先端であるフランジ11には、図示はしないが、エンドエフェクタ(手先)が取り付けられる。ロボット2に設けられる複数の軸はそれぞれに対応して設けられるモータ(図1に符号Mを付して示す)により駆動される。各モータの近傍には、それぞれの回転軸の回転位置を検出するための位置検出器(図示せず)が設けられている
ティーチングペンダント4は、例えば使用者が携帯あるいは手に所持して操作可能な程度の大きさで、例えば薄型の略矩形箱状に形成されている。ティーチングペンダント4には、各種のキースイッチ12が設けられており、使用者は、キースイッチ12により種々の入力操作を行う。このキースイッチ12には、後述する緊急停止を指示するための緊急停止スイッチが含まれている。使用者は、この緊急停止スイッチを操作することで、ロボット2の動作(アームの動作)を最短距離で停止させることができるようになっている。ティーチングペンダント4は、ケーブルを経由してコントローラ3に接続され、通信インターフェイスを経由してコントローラ3との間で高速のデータ転送を実行するようになっており、キースイッチ12の操作により入力された操作信号等の情報はティーチングペンダント4からコントローラ3へ送信される。
【0017】
図1は、ロボットシステム1の電気構成を概略的に示すブロック図である。ロボット2には、各軸をそれぞれ駆動するための複数のモータM(図1では1つのみ示す)が設けられている。モータMはブラシレスDCモータである。コントローラ3には、交流電源21より供給される交流を整流および平滑して出力する直流電源装置22、モータMを駆動するインバータ装置23、電流検出部24、位置検出部25およびこれら各装置の制御などを行う制御部26が設けられている。
【0018】
直流電源装置22は、整流回路27と平滑用のコンデンサ28とから構成されている。整流回路27は、ダイオードをブリッジの形態に接続してなる周知構成のものである。例えば3相200Vの交流電源21の各相出力は、整流回路27の交流入力端子に接続されている。整流回路27の直流出力端子は、それぞれ直流電源線29、30に接続されている。これら直流電源線29、30間にはコンデンサ28が接続されている。
【0019】
インバータ装置23(駆動部に相当))は、直流電源線29、30間に6つのスイッチング素子例えばIGBT(図1には2つのみ示す)を三相フルブリッジ接続して構成されたインバータ主回路と、その駆動回路とを6組備えている(図1には1組のみ示す)。IGBTのコレクタ・エミッタ間には還流ダイオードが接続されている。また、IGBTのゲートには、駆動回路からゲート信号が与えられている。駆動回路は、制御部26から与えられる指令信号(通電指令Sc)に基づいてパルス幅変調されたゲート信号を出力して各IGBTを駆動する。
【0020】
制御部26は、CPU、ROM、RAM、I/Oなどを備えたマイクロコンピュータを主体として構成されている。電流検出部24は、モータMに流れる電流を検出する電流検出器(図示せず)からの検出信号を制御部26に入力可能なデータに変換して出力する。位置検出部25は、モータMの回転位置を検出する位置検出器(図示せず)からの検出信号を制御部26に入力可能なデータに変換して出力する。制御部26は、電流検出部24から出力されるデータを元にモータMに流れる電流の値を取得するとともに、位置検出部25から出力されるデータを元にモータMの回転位置および回転速度を取得する。詳細は後述するが、制御部26は、このようにして取得した電流値、回転位置および回転速度を用いてインバータ装置23によるモータMの駆動をフィードバック制御する。
【0021】
図2は、ロボットシステム1におけるモータ制御の内容を等価的に示したブロック図である。この図2に示すように、制御部26は、位置制御部31、速度制御部32および電流制御部33を備えている。なお、図2では、1つのモータMの制御に係る構成のみを示しているが、実際には全てのモータMのそれぞれに対応して同様の構成が設けられている。さて、一般に産業用のロボットは、予めティーチングなどを実施することにより作成される所定の動作プログラムに従って動作するようになっている。図示しない上位制御部は、その動作プログラムを解釈し、ロボット2に動作プログラムに従った動作を行わせるように各モータMを制御するための指令値(位置指令pc)を位置制御部31に出力する。
【0022】
位置制御部31は、上位制御部から与えられる位置指令pc(モータMの回転位置の指令値)に対する現在の回転位置p*の偏差を求める減算器34と、この減算器34の出力(偏差)をゼロに近づけるように速度指令vcを出力する位置制御アンプ35とから構成されている。この位置制御アンプ35のゲインはKpとなっている。
【0023】
速度制御部32は、微分器36、減算器37、速度制御アンプ38、フィルタ39およびリミッタ40により構成されている。微分器36(速度演算部に相当)は、現在の回転位置p*を微分して現在の回転速度v*に変換する。減算器37は、速度指令vcに対する現在の回転速度v*の偏差を求める。速度制御アンプ38は、この減算器37の出力(偏差)をゼロに近づけるように電流指令演算値ic’を出力する。この速度制御アンプ38のゲインはKvとなっている。フィルタ39は、速度制御アンプ38の出力信号に対し、所定のフィルタ制御(詳細は後述する)を行う。
【0024】
リミッタ40は、フィルタ39の出力信号が所定の上限値および下限値を超えないように制限を与えるリミッタ制御を行う。すなわち、リミッタ40は、フィルタ39の出力信号を上限値および下限値でクリップさせる。なお、これら上限値および下限値は、これらを超える電流がモータMに流れると故障が生じる可能性があるという値であり、モータMの回路定数などに基づいて定められている。リミッタ40は、フィルタ39の出力信号に上記制限を与えた信号を電流指令icとして出力する。
【0025】
電流制御部33は、電流指令icに対する現在のモータMに流れる電流i*の偏差を求める減算器41と、この減算器41の出力(偏差)をゼロに近づけるようにインバータ装置23に対する指令信号(通電指令Sc)を出力する電流制御アンプ42とから構成されている。この電流制御アンプ42のゲインはKiとなっている。このような構成により、制御部26は、電流フィードバック制御、速度フィードバック制御および位置フィードバック制御を行い、モータMの駆動をフィードバック制御してロボット2のアームの動作制御を行う。
【0026】
次に、上記構成の作用について図4〜図11も参照して説明する。
本実施形態では、通常時(通常モード)と緊急停止時(緊急停止モード)とにおいて、制御部26によるモータMの制御動作が変化するようになっている。これら通常モードおよび緊急停止モードは、緊急停止フラグFlgの状態に応じて切り替えられる。この緊急停止フラグFlgは、システムの起動時にリセット(Flg=0)されている。そして、緊急停止フラグFlgは、図4に示す割り込み制御が実行されることでセット(Flg=1)される(図4のステップA1)。
【0027】
この割り込み制御は、ロボット2の動作を緊急停止させるための指令(緊急停止指令)が入力されると実行されるもので、例えばティーチングペンダント4の緊急停止スイッチが操作されたときや、制御部26において何らかの異常(故障)が発生し、以後ロボット2を正常に動作させることが困難であると判断されたときなどに実行される。この割り込み制御が行われて緊急停止フラグFlgがセットされると、モータMの駆動制御によりアームの動作が停止され(詳細は後述する)、その後、インバータ装置23への直流電源の供給が停止される。続いて、モータMの回転軸をロックするブレーキが作動され、その後、上位制御部からの動作プログラムに基づく指令値の出力が停止されるようになっている。
【0028】
最初に、通常モードにおける制御部26によるモータMの制御動作について説明する。通常モードでは、制御部26は、位置フィードバック制御、速度フィードバック制御および電流フィードバック制御を行ってモータMの駆動を制御する。すなわち、位置制御部31は、所定の位置制御周期(例えば500μs)毎に起動し、起動する度に図5のフローチャートに示された内容の制御を実行する。位置制御部31は、最初のステップB1では、モータMの現在の回転位置p*を取得する。続くステップB2では、緊急停止フラグFlgがセットされているか否かを判断する。
【0029】
この場合、緊急停止指令が与えられていないため、緊急停止フラグFlgはリセット(Flg=0)されている(ステップB2で「NO」)。このため、ステップB3をスキップしてステップB4に進み、位置指令pc、回転位置p*および位置ゲインKpを用い、下記(1)式のように速度指令vcを演算する。
vc=Kp×(pc−p*) …(1)
続くステップB5において、上記(1)式に基づいて算出された速度指令vcを速度制御部32に出力して制御を終了する(エンド)。
【0030】
速度制御部32は、所定の速度制御周期(サンプリング周期に相当するものであり、例えば250μs)毎に起動し、起動する度に図6のフローチャートに示された内容の制御を実行する。速度制御部32は、最初のステップC1では、モータMの現在の回転速度v*を取得する。続くステップC2では、速度指令vc、回転速度v*および速度ゲインKvを用い、下記(2)式のように電流指令演算値ic’を演算する。
ic’=Kv×(vc−v*) …(2)
【0031】
この場合、緊急停止指令が与えられていないため、緊急停止フラグFlgはリセット(Flg=0)されている(ステップC3で「NO」)。このため、ステップC4のフィルタ制御は行わずにステップC5に進む。
ステップC5では、上記(2)式に基づいて算出された電流指令演算値ic’に対して所定の制限を与えるリミッタ制御を行う。続くステップC6では、ステップC5にて制限が与えられた電流指令演算値ic’を、電流指令icとして電流制御部33に出力して制御を終了する(エンド)。
【0032】
電流制御部33は、所定の電流制御周期(例えば50μs)毎に起動し、起動する度に図7のフローチャートに示された内容の制御を実行する。電流制御部33は、最初のステップD1では、モータMに流れる電流i*を取得する。続くステップD2では、電流指令ic、電流i*および電流ゲインKiを用い、下記(3)式のように通電指令Scを演算する。
Sc=Ki×(ic−i*) …(3)
続くステップD3において、上記(3)式に基づいて算出された通電指令Scをインバータ装置23に出力して制御を終了する(エンド)。
【0033】
続いて、緊急停止モードにおける制御部26によるモータMの制御動作について説明する。以下では、緊急停止モードでの位置制御部31および速度制御部32の動作について通常モードの場合とは異なる部分を主体に説明する。なお、電流制御部33は、緊急停止モードにおいても通常モードの場合と同様の制御を行うので説明を省略する。
【0034】
緊急停止モードでは、位置制御部31は、上位制御部から与えられる位置指令pcにかかわらず速度指令vcをゼロに固定する。すなわち、この場合、緊急停止フラグFlgがセット(Flg=1)されている(ステップB2で「YES」)ため、ステップB3に進み、位置ゲインKpをゼロにする(Kp=0)。これにより、続くステップB4で求められる速度指令vcがゼロに固定される。そして、ステップB5において、ゼロに固定された速度指令vcを速度制御部32に出力する。
【0035】
緊急停止モードでは、速度制御部32は、電流指令演算値ic’に対してフィルタ制御を行う。すなわち、この場合、緊急停止フラグFlgがセット(Flg=1)されている(ステップC3で「YES」)ため、ステップC4に進みフィルタ制御を実行する。このフィルタ制御の内容は図8に示すものである。まず、最初のステップE1では、前回の速度制御起動時点(1速度制御周期前の時点)から今回の速度制御起動時点(現時点)にかけての電流指令演算値ic’の変化量a(増加量または減少量、傾き)を求める。すなわち、ステップE1では、今回の速度制御起動時にステップC2で演算された電流指令演算値ic’(今回電流指令に相当するものであり、以下ic’(n)と表す)と、前回の速度制御起動時にリミッタ40に出力された電流指令ic(前回電流指令に相当するものであり、以下ic(n−1)と表す)とを用い、下記(4)式のように変化量aを演算する。
a=ic’(n)−ic(n−1) …(4)
【0036】
続くステップE2では、変化量aの絶対値|a|が、制限値alim(制限変化量に相当)を超えているか否かを判断する。変化量aの絶対値|a|が制限値alim以下である場合(ステップE2で「NO」)、ステップE3〜E5をスキップしてステップE6に進む。そして、ステップE6において、今回の電流指令演算値ic’(n)をそのままリミッタ40に出力し、制御を終了する(リターン)。
【0037】
一方、変化量aの絶対値|a|が制限値alimを超えている場合(ステップE2で「YES」)、ステップE3に進む。ステップE3では、変化量aの極性、つまり変化量aが増加量(増加方向の傾き、右肩上がりの傾き)であるのか、減少量(減少方向の傾き、右肩下がりの傾き)であるのかを判断する。変化量aが増加量である場合(YES)にはステップE4に進み、減少量である場合(NO)にはステップE5に進む。
【0038】
ステップE4では、前回の電流指令ic(n−1)に対し、プラスの符号を付した制限値alimを加えたもの(ic(n−1)+alim)を今回の電流指令演算値ic’(n)とする。ステップE5では、前回の電流指令ic(n−1)に対し、マイナスの符号を付した制限値alimを加えたもの(ic(n−1)−alim)を今回の電流指令演算値ic’(n)とする。続くステップE6では、ステップE5において求められた電流指令演算値ic’(n)をリミッタ40に出力し、制御を終了する(リターン)。
【0039】
このようなフィルタ制御が行われることより、緊急停止時において速度制御部32から出力される電流指令icの前回から今回にかけての変化量(増減量)が制限値alim以下に抑えられる。なお、制限値alimは、緊急停止時においてロボット2を構成する機構部品に過大な負担がかからないように電流指令icの変化量を制限できる値に設定すればよい。例えば、事前にロボット2の可動部に加速度計を取り付けた状態で緊急停止させる実験を、電流指令icの変化量を段階的に変化させて行う。そして、実際に機構部品に異常が生じたときの加速度の計測値から機構部に過大な負担がかかる電流(トルク)の変化量の限界値を求め、その限界値に基づいて制限値alimを設定すればよい。
【0040】
続いて、緊急停止時において速度制御部32から出力される電流指令icがどのように変化するかについて図9も参照しながら説明する。なお、図9では、電流指令icを実線で示し、電流指令演算値ic’を破線で示し、変化量aの制限値alimを二点鎖線で示し、リミッタ40の下限値を一点鎖線で示している。また、図9では、中央の実線(電流指令=0を示す実線)を挟んで、上側がモータMを正転方向(所定のアーム動作を行わせるための回転方向)に回転させる電流(トルク)であり、下側がモータMを逆転方向(所定のアーム動作を停止させるための回転方向)に回転させる電流(トルク)である。なお、図9中に示す時刻t0〜t18は、いずれも速度制御部32が起動される時点(サンプリング時点に相当)を表している。また、図9では、時刻t0〜t1の間に緊急停止指令が入力され、時刻t18の時点でアームの動作が停止される場合を想定している。
【0041】
緊急停止指令が入力された後、最初に速度制御部32が起動する時刻t1では、モータMを正転方向に回転する所定の回転速度v*を一気にゼロにすべく、時刻t1〜t2の間の電流指令演算値ic’は、右肩下がりに急激に変化する。しかし、この電流指令演算値ic’の変化量a(傾き)は、制限値alimよりも大きい。従って、時刻t1〜t2の間の電流指令icは、その変化量(傾き)が制限値alimに一致するように制限される。
【0042】
これにより、時刻t1〜t2の間において発生する正転方向の電流(トルク)が緩やかに減少され、回転速度v*も緩やかに低下する。このため、続く時刻t2〜t3の間の電流指令演算値ic’の変化量aは、若干小さくなる。しかし、その変化量が未だ制限値alimより大きいため、時刻t2〜t3の間の電流指令icについても、変化量が制限値alimに一致するように制限される。時刻t3〜t4の間および時刻t4〜t5の間についても、上記同様に、電流指令icの変化量が制限値alimに一致するように制限される。
【0043】
続く時刻t5〜t6の間、時刻t6〜t7の間および時刻t7〜t8の間では、演算された電流指令演算値ic’の変化量aは制限値alim以下になる。従って、これらの間では、演算された電流指令演算値ic’がそのまま電流指令icとして出力される。このようにして、電流指令icは、その変化量(傾き)が制限値alim以下となるように、時刻t1の時点の値から緩やかに低下していき、時刻t8の時点で下限値に達する。
【0044】
電流指令演算値ic’および電流指令icは、下限値に達した後(時刻t8〜t10の間)は、リミッタ制御によりその下限値を超えて低下することなくその値が維持される。その後、時刻t10〜時刻t18の間は、電流指令演算値ic’が右肩上がりに緩やかに変化する。この間の電流指令演算値ic’の変化量aについても制限値alim以下となっているので、電流指令演算値ic’がそのまま電流指令icとして出力される。その後、時刻t18の時点において、アームの動作が停止されることで回転速度v*が速度指令vc(=0)と等しくなり、電流指令icがゼロになる。
【0045】
以上説明したように、本実施形態によれば次のような効果が得られる。
緊急停止モードでは、位置制御部31は、上位制御部から与えられる位置指令pcにかかわらず速度指令vcをゼロに固定し、通常の位置制御は行わない。このため、本実施形態によれば、緊急停止時にも通常の位置制御を行いながらアームの動作を停止させていた従来技術と比較し、次のような優れた効果を奏する。図10は、緊急停止時のモータMの回転速度の変化について本実施形態と従来技術とを比較したものである。図10では、本実施形態における回転速度を実線で示し、従来技術における回転速度を破線で示している。なお、図10では、時刻taの時点で緊急停止指令が入力された場合を想定している。
【0046】
この図10に示すように、従来技術の場合、時刻taの時点で緊急停止指令が入力された後、所定の制御遅れ時間だけ経過した時刻tbの時点からモータMの回転速度が低下する。この際、緊急停止であるため、通常動作時と比べて高い減速度(加速度)で速度が低下する。ここで、ロボット2の姿勢や把持している物体の重量によっては、この加速度がモータMの出力に対して過大となる場合がある。このような場合には、回転速度v*をゼロに合わせることができずにオーバーシュートしてしまう(図10の時刻tc〜tdの間)。さらに、このときも位置制御が行われているため、回転位置p*を位置指令pcに合わせるべく回転速度v*を再び上昇させる。このような動作が、回転位置p*が位置指令pcに等しくなるまで繰り返されることで回転速度v*が振動的になる(時刻tc〜te)。その結果、緊急停止時におけるアームの動きが振動的になってしまう。
【0047】
これに対し、本実施形態の場合、時刻taの時点で緊急停止指令が入力された後、所定の制御遅れ時間だけ経過した時刻tbの時点からモータMの回転速度が低下する点は従来技術と同じである。しかし、位置制御部31は、速度指令vcをゼロに固定して通常の位置制御を行わないので、速度制御部32は、位置制御による制限を受けることなく、回転速度v*をゼロに収束させるべく速度制御を実行する。その結果、回転速度v*は、振動的になることなく、時刻tb〜時刻tfの間に緩やかに低下し、アームの動作を最短距離で停止させることができる。
【0048】
また、緊急停止モードでは、速度制御部32は、ゼロに固定された速度指令vcと回転速度v*との差に基づいて演算される電流指令演算値ic’に対しフィルタ制御を行い、電流指令icの傾きを所定の制限値alim以下に制限する。このため、本実施形態によれば、緊急停止時に速度指令vcをゼロに固定するだけでは得られない次のような優れた効果を奏する。図11では、本実施形態における電流指令icを実線で示し、フィルタ制御を行わない場合における電流指令icを破線で示している。なお、図11において、本実施形態に係る部分については図9と同じとなっている。
【0049】
この図9に示すように、フィルタ制御を行わない場合、緊急停止指令が入力された後の最初の制御起動時(時刻t1)に回転速度v*を一気にゼロにすべく、電流指令icが反転方向(逆転方向)に急激に変化する。すなわち、緊急停止指令が入力された直後において多大な逆転トルクが発生する(時刻t1〜t2)。この電流(トルク)の大きな変化は、躍度(加加速度)が大きいことになる。その結果、ロボット2を構成する機構部品に過大な負担がかかり損傷を与えてしまう危険性がある。
【0050】
これに対し、本実施形態の場合、緊急停止指令が入力された後の最初の制御起動時(時刻t1)から電流指令演算値ic’に対しフィルタ制御を行い、電流指令icの傾きを所定の制限値alim以下に制限する。すなわち、モータMの駆動を停止する方向に働く電流(逆転トルク)の変化量が所定の制限値以下に抑えられる。このため、本実施形態によれば、緊急停止する際に機構部品に過大な負担をかけることがなくなるため、関節を構成する機構部品に損傷を与えたり、それら部品間の締結が緩んだりすることがない。従って、緊急停止した後にロボット2を再度起動する際、関節部分に問題がないので動作制御の精度が低下することがない。
【0051】
また、ロボットシステム1では、一般にロボット2のモータMの制御に用いられる位置制御部31および速度制御部32に対し、緊急停止指令が入力されたときの上記制御内容(速度指令vcをゼロに固定するとともに電流指令演算値ic’に対しフィルタ制御を行う)を追加するだけで上記各効果が得られる。このため、既存の緊急停止制御からの修正が容易であり、また、制御部26の制御内容を簡素化することができる。
【0052】
なお、本発明は上記し且つ図面に記載した実施形態に限定されるものではなく、次のような変形または拡張が可能である。
速度制御部32におけるリミッタ40は必要に応じて設ければよい。リミッタ40を省略する場合にはフィルタ39の出力信号が電流指令icとなる。
電流指令演算値ic’の変化量aが増加量である場合、それまでの期間に回転速度v*が十分に低下されていることが多く、そのときの変化量aは制限値alim以下である可能性が高い。このような場合には、図8に示すフィルタ制御におけるステップE4は省略してもよい。すなわち、変化量aが増加量である場合(ステップE3で「YES」)には、ステップE6に進み、今回の電流指令演算値ic’(n)をそのまま電流指令icとしてリミッタ40に出力してもよい。
上記実施形態では、本発明を6軸の垂直多関節型のロボット2に適用した例を説明したが、本発明は、各軸をモータにより駆動する構成のロボット全般に適用可能である。
【符号の説明】
【0053】
図面中、1はロボットシステム、2はロボット、4はティーチングペンダント(入力手段)、23はインバータ装置(駆動部)、24は電流検出部、25は位置検出部、26は制御部、31は位置制御部、32は速度制御部、33は電流制御部、36は微分器(速度演算部)、Mはモータを示す。
【特許請求の範囲】
【請求項1】
ロボットの各軸を駆動するためのモータと、
前記モータに通電を行い駆動する駆動部と、
前記駆動部による前記モータの駆動を制御する制御部と、
前記ロボットの動作を最短距離で停止させるように指令する緊急停止指令を入力する入力手段と、
前記モータの回転位置を検出する位置検出部と、
前記位置検出部により検出された前記回転位置を用いて前記モータの回転速度を演算する速度演算部と、
前記モータに流れる電流を検出する電流検出部とを備え
前記制御部は、
前記位置検出部により検出される前記回転位置を上位制御部から与えられる位置指令に一致させるように速度指令を出力する位置制御を行う位置制御部と、
前記速度演算部により演算される前記回転速度を前記位置制御部から与えられる速度指令に一致させるように前記モータに所定のトルクを発生させるための電流指令を出力する速度制御を行う速度制御部と、
前記電流検出部により検出される前記電流を前記速度制御部から与えられる電流指令に一致させるように前記モータの通電指令を前記駆動部に対して出力する電流制御を行う電流制御部とを備え、
前記位置制御部は、前記緊急停止指令が入力されると、前記上位制御部から与えられる回転位置指令にかかわらず前記速度指令をゼロに固定し、
前記速度制御部は、
所定のサンプリング周期毎に前記速度制御を実行し、
前記緊急停止指令が入力されると、今回のサンプリング時点における電流指令である今回電流指令と前回のサンプリング時点における電流指令である前回電流指令との差から前回のサンプリング時点から今回のサンプリング時点までの電流指令の変化量を求め、前記変化量が予め定められた所定の制限変化量以下である場合には前記今回電流指令を電流指令として出力し、前記変化量が前記制限変化量より大きく且つ増加量である場合には、前記前回電流指令に対しプラスの符号を付した前記制限変化量を加えたものを電流指令として出力し、前記変化量が前記制限変化量より大きく且つ減少量である場合には、前記前回電流指令に対しマイナスの符号を付した前記制限変化量を加えたものを電流指令として出力するフィルタ制御を行うことを特徴とするロボットシステム。
【請求項1】
ロボットの各軸を駆動するためのモータと、
前記モータに通電を行い駆動する駆動部と、
前記駆動部による前記モータの駆動を制御する制御部と、
前記ロボットの動作を最短距離で停止させるように指令する緊急停止指令を入力する入力手段と、
前記モータの回転位置を検出する位置検出部と、
前記位置検出部により検出された前記回転位置を用いて前記モータの回転速度を演算する速度演算部と、
前記モータに流れる電流を検出する電流検出部とを備え
前記制御部は、
前記位置検出部により検出される前記回転位置を上位制御部から与えられる位置指令に一致させるように速度指令を出力する位置制御を行う位置制御部と、
前記速度演算部により演算される前記回転速度を前記位置制御部から与えられる速度指令に一致させるように前記モータに所定のトルクを発生させるための電流指令を出力する速度制御を行う速度制御部と、
前記電流検出部により検出される前記電流を前記速度制御部から与えられる電流指令に一致させるように前記モータの通電指令を前記駆動部に対して出力する電流制御を行う電流制御部とを備え、
前記位置制御部は、前記緊急停止指令が入力されると、前記上位制御部から与えられる回転位置指令にかかわらず前記速度指令をゼロに固定し、
前記速度制御部は、
所定のサンプリング周期毎に前記速度制御を実行し、
前記緊急停止指令が入力されると、今回のサンプリング時点における電流指令である今回電流指令と前回のサンプリング時点における電流指令である前回電流指令との差から前回のサンプリング時点から今回のサンプリング時点までの電流指令の変化量を求め、前記変化量が予め定められた所定の制限変化量以下である場合には前記今回電流指令を電流指令として出力し、前記変化量が前記制限変化量より大きく且つ増加量である場合には、前記前回電流指令に対しプラスの符号を付した前記制限変化量を加えたものを電流指令として出力し、前記変化量が前記制限変化量より大きく且つ減少量である場合には、前記前回電流指令に対しマイナスの符号を付した前記制限変化量を加えたものを電流指令として出力するフィルタ制御を行うことを特徴とするロボットシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−62794(P2011−62794A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−217255(P2009−217255)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願日】平成21年9月18日(2009.9.18)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
[ Back to top ]