(57)【要約】【課題】  種々の負荷イナーシャに対応可能なロボットの制御装置を提供する。【解決手段】  サーボモータ１６によって駆動される複数の関節１３を備え、アーム先端１４に装着されるツール１５を交換可能な多関節ロボット１０の制御装置２０において、アーム先端に装着されるツールの負荷イナーシャの値に応じて、少なくとも最もアーム先端側となる関節における、少なくともモータ軸の角速度、トルク又はツールの荷搬重量のいずれかの制限値を設定する第一の制限設定手段と、多関節ロボットに対して制限値の範囲内で動作するように制御する動作制御手段とを備える、という構成を採っている。【選択図】図３
2007066001.tif 000002
【特許請求の範囲】
【請求項１】
サーボモータによって駆動される複数の関節を備え、アーム先端に装着されるツールを交換可能な多関節ロボットの制御装置において、
前記アーム先端に装着されるツールの負荷イナーシャの値に応じて、少なくとも最もアーム先端側となる関節における、少なくともモータ軸の角速度、トルク又はツールの荷搬重量のいずれかの制限値を設定する第一の制限設定手段と、
前記多関節ロボットに対して前記制限値の範囲内で動作するように制御する動作制御手段とを備えることを特徴とするロボット制御装置。
【請求項２】
前記アーム先端に装着されるツールの負荷イナーシャの値に応じて、少なくとも最もアーム先端側となる関節のサーボモータの位置ループゲイン又は加速度の制限値を設定するフィードフォワード制御を行う第二の制限設定手段を備えることを特徴とする請求項１記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アーム先端にツールを装着して使用する多関節ロボットの制御装置に関する。
【背景技術】
【０００２】
産業用ロボットは、多関節アームの先端部にハンドリング用、溶接用、その他の切削用等のツールを装備し、各関節に設けられたサーボモータの駆動により所定の動作を行わせることで目的の作業を達成するものである。
そして、このようなアーム先端部にツールを装着するロボットにあっては、ツールのイナーシャ(ワークの保持を行うツールの場合にはワークを含んだ総合的なイナーシャ、以下、これらを「負荷イナーシャ」とする）の大きさによってアームの各部に負担を与えることになる。このため、従来のロボット制御装置にあっては、負荷イナーシャの大きさを考慮したフィードフォワード制御を行い、各関節のゲインをコントロールすることで各部の負担軽減を図っていた（例えば、特許文献１参照）。
【特許文献１】特開平８−１９０４３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記フィードフォワード制御はロボットのアームの振動低減には有効だが、負荷イナーシャがより大きくなるとロボットの各部に生じる負担による耐久性の低下を回避するには不十分となる場合があった。また、負荷イナーシャがより大きくなると、非常停止や緊急停止時の従前の設定が対応しきれなくなるという問題があった。
このため、加速度やゲインで対応困難な程大きな負荷イナーシャを生じるツールを使用する場合には、関節の各軸の最高速度や荷搬重量がより低い値に規制された仕様の異なる別のロボットを用意する必要があった。
その結果、生産ラインにおいて同一工程内のロボットの種類が増加してしまい、適用検討の面、保守の面等で、余計な時間を取られる要因となっていた。つまり、このような制限が設けられているロボットについては汎用性が低く、通常範囲のイナーシャのツールを使用する場合でも、低速或いは低荷搬重量での作業しか行えず、作業効率の低下を招くという不都合もあった。
【０００４】
本発明は、種々の負荷イナーシャに対応可能なロボットの制御装置を提供することをその目的とする。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、サーボモータによって駆動される複数の関節を備え、アーム先端に装着されるツールを交換可能な多関節ロボットの制御装置において、アーム先端に装着されるツールの負荷イナーシャの値に応じて、少なくとも最もアーム先端側となる関節における、少なくともモータ軸の角速度、トルク又はツールの荷搬重量のいずれかの制限値を設定する第一の制限設定手段と、多関節ロボットに対して前記制限値の範囲内で動作するように制御する動作制御手段とを備える、という構成を採っている。
【０００６】
上記構成において、ツールの負荷イナーシャに応じて制限値を設定するのは、関節におけるモータ軸の角速度、トルク又はツールの荷搬重量のいずれか一種のみで良いし、これらの組み合わせであっても良い。
また、角速度又はトルクが制限される対象となる関節は、少なくとも最も先端の関節が含まれていれば良い。
なお、制限を受ける対象を荷搬重量とする場合において「荷搬重量」とは、ツールの重量のことを示し、ツールがワークなどの保持を行うハンドである場合にはワークを含むツール全体の重量を示すものとする。
【０００７】
請求項２記載の発明は、請求項１記載の発明と同様の構成を備えると共に、アーム先端に装着されるツールの負荷イナーシャの値に応じて、少なくとも最もアーム先端側となる関節のサーボモータの位置ループゲイン又は加速度の制限値を設定するフィードフォワード制御を行う第二の制限設定手段を備える、という構成を採っている。
【発明の効果】
【０００８】
請求項１記載の発明では、ロボットのアームの先端部のイナーシャに応じてロボットの先端側の関節のサーボモータの軸速度、トルク又は荷搬重量の制限値を特定し、当該制限の範囲内でロボットに動作を行わせることができるので、使用するツールのイナーシャの値に応じて仕様の異なる別のロボットを用意する必要がなく、ロボットについてその汎用性の向上を図ることが可能となる。
さらに、サーボモータの軸速度、トルク又は荷搬重量について制限を設けるので、ロボットの各部に生じる負担による耐久性の向上を図り、或いは、非常停止や緊急停止時をより速やか且つ円滑に行うことが可能となる。
【０００９】
請求項２記載の発明は、ツールの負荷イナーシャの値に応じてアーム先端側の関節のサーボモータの位置ループゲイン又は加速度の制限値を設定するので、アーム全体の振動、特に共振を抑制することができ、ロボットの動作の安定化を図ることが可能となる。
【発明を実施するための最良の形態】
【００１０】
（発明の実施形態の全体構成）
本発明の実施の形態を図１乃至図４に基づいて説明する。図１は、本発明の実施形態の概略構成図である。
上記実施形態では、溶接ガン等のツール１５を先端部１４で保持すると共に当該ツール１５を任意の位置に移動させ或いは任意の向きに向ける動作を行うロボット１０の動作制御を行うロボット制御装置２０を示している。
【００１１】
（ロボット）
制御対象となるロボット１０は、土台となるベース１１と、関節１３で連結された複数のアーム１２と、各関節１３ごとに設けられた駆動源としてのサーボモータ１６（図２参照）と、各サーボモータ１６の軸角度をそれぞれ検出するエンコーダ１７（図２参照）とを備えている。そして、連結されたアーム１２の最先端部１４にはロボット１０の用途に応じたツール１５（例えば溶接ガン等）が装備される。
上記各関節１３は、アーム１２の一端部を揺動可能として他端部を軸支する揺動関節と、アーム１２自身をその長手方向を中心に回転可能に軸支する回転関節とのいずれかから構成される。つまり、本実施形態におけるロボット１０はいわゆる多関節型ロボットに相当する。
また、ロボット１０は、六つの関節１３を具備しており、その先端部１４のツール１５を任意の位置に位置決めし任意の姿勢を取らせることが可能となっている。
なお、以下の説明において、六つの関節１３については、必要に応じて、ベース１１からアーム先端１４に向かう順番で第１関節〜第６関節と区別して説明することとする。
【００１２】
（ロボット制御装置）
ロボット制御装置２０は、当該ロボット制御装置２０全体を制御するシステムプログラムとロボット１０の動作制御を行う制御プログラムと各種の初期設定データが格納されたＲＯＭ２２と、ＲＯＭ２２に格納された各種のプログラムを実行するＣＰＵ２１と、ＣＰＵ２１の処理により各種データを格納するワークエリアとなるＲＡＭ２３と、ＣＰＵ２１の実行する制御プログラムに従って決定されるロボット１０の各関節１３のサーボモータ１６のトルク値に応じたサーボモータ駆動電流を通電するサーボ制御回路（サーボアンプ）２４と、各関節１３のエンコーダ出力をカウントするカウンタ２５と、前述の制御プログラムの処理により求められるロボット１０の制御に関する各種のデータが格納される記憶手段としてのメモリ２６と、ロボット１０の教示点、その他の各種の設定を入力するための例えばキーボード及びそのインターフェイスからなる入力手段２７と、所定情報の表示出力を行う表示手段２８と、上記各構成の信号の送受可能に接続するバス２９とを備えている。
なお、上述のメモリ２６は、格納されたデータを書き替え可能に記憶保持可能な手段であれば良く、例えば、不揮発性の半導体メモリ或いはいわゆるハードディスク装置等で構成されている。
また、上記カウンタ２５及びサーボ制御回路２４は、ロボット１０の各関節１３のサーボモータごとに個別に設けられているが図１では図示を省略している。
【００１３】
（ロボット制御装置の制御系）
図２はロボット制御装置２０の制御系を示すブロック線図である。この図２に示す制御系に示す各構成は、上記サーボ制御回路２４とＣＰＵ２１が処理プログラムを実行することでその機能を実現するものである。
図示の位置制御器３１は、入力手段２７からの教示点に基づく動作プログラムに従い生成された位置指令（各関節１３ごとの角度位置）とエンコーダ１７の位置帰還出力との偏差から、予め設定された位置ループゲインに基づいて速度指令信号を求めて位置制御を行う。
【００１４】
速度制御器３２は、速度指令と速度演算部３６がエンコーダ１７の位置帰還出力を時間微分して求めた速度帰還出力との偏差から、サーボモータ１６に対する電流指令を求めて速度制御を行う。
電流制御器３３は、電流指令とサーボモータ１６への駆動電流を検出する電流検出器３５からの電流帰還出力とから電流制御を行う。
増幅器３４は、電流指令に基づいて駆動電流をサーボモータ１６に通電を行う。
電流検出器３５は増幅器３４の通電電流に応じた電流帰還出力を行う。
【００１５】
なお、上記構成位置制御器３１，速度制御器３２，電流制御器３３，増幅器３４，電流検出器３５及び速度演算部３６は、一般的な周知のサーボモータのフィードバック制御を行う構成である。
そして、上記構成位置制御器３１，速度制御器３２及び速度演算部３６は、前述したＣＰＵ２１が所定の処理プログラムを実行することによりソフトウェア的に実現する構成であり、電流制御器３３，増幅器３４及び電流検出器３５は、それぞれの機能を実現可能に組まれた回路構成によりハードウェア的に実現する構成である。
【００１６】
さらに、第４〜第６関節１３におけるロボット制御装置２０の制御系にあっては、メモリ２６に記憶されたツール１５の負荷イナーシャに基づいて位置制御器３１における位置ループゲインを更新する第二の制限設定手段としての位置ループゲイン演算部３７を備えている。
この位置ループゲイン演算部３７は、既知であるツール１５の負荷イナーシャが入力手段２７から入力されてメモリ２６に記憶された場合、或いは後述するツール１５の負荷イナーシャの算出処理により求められて記憶された場合のいずれを問わず、ツール１５の負荷イナーシャが更新されると、当該負荷イナーシャの値に対応する位置ループゲインを求め、メモリ２６に設定する。位置制御部３１は、位置ループゲイン演算部３７により設定された位置ループゲインに基づいて位置ループ制御を行う。
【００１７】
メモリ２６には負荷イナーシャと位置ループゲインとの対応関係を示すテーブルが予め記憶されており、上記位置ループゲイン演算部３７はそのテーブルを参照して位置ループゲインの決定を行う。上記テーブルには、ツール１５の負荷イナーシャの値に対して共振の発生を回避する位置ループゲインの値が記憶されている。
【００１８】
上記位置ループゲイン演算部３７は、サーボモータのフィードフォワード制御を行う構成であり、前述したＣＰＵ２１が所定の処理プログラムを実行することによりソフトウェア的に実現する構成である。
なお、位置ループゲイン演算部３７の処理は、テーブルを参照して位置ループゲインを求めるのではなく、所定の関係式を用いて負荷イナーシャから算出する構成としても良い。
また、位置ループゲイン演算部３７の処理において、予め負荷イナーシャの閾値を設定し、当該閾値を越える場合にのみ位置ループゲインを更新しても良い。
【００１９】
（制御装置が行う第一の制限設定手段としての処理）
ロボット制御装置２０では、ツール１５の負荷イナーシャについて一般的となる範囲が想定されており、それに基づいて各関節１３のサーボモータ１６の初期制限最高速度が設定されている。
そして、別のツール１５への交換により、ロボット制御装置２０のＣＰＵ２１は、ロボット１０の先端部１４に装着されるツール１５の負荷イナーシャが新たに特定されると、当該負荷イナーシャの値に応じて、アーム先端側の第５及び第６関節１３におけるモータ軸の角速度の最高速度の制限値を設定する第一の制限設定手段としての処理を行う。図３はＣＰＵ２１が所定の処理プログラムに従って上記処理を行う場合のフローチャートである。
【００２０】
アーム先端部１４に装着するツール１５の負荷イナーシャが既知である場合には、ロボット１０の非作動時、例えば教示の際に、入力手段２７からの負荷イナーシャの数値入力を受け付け、オペレータから入力が行われると、ＣＰＵ２１は、メモリ２６にその値を記憶する（ステップＳ１）。
なお、かかる負荷イナーシャの入力は、ツール１５の重心位置におけるイナーシャであり、アーム先端位置において設定されるＸ−Ｙ−Ｚ方向の直交座標系における、各方向について入力を受け付けると共に、Ｘ，Ｙ，Ｚの各方向の各イナーシャIxx,Iyy,Izzがメモリ２６内に記憶される。
【００２１】
次いで、ＣＰＵ２１は、メモリ２６に登録されたＸ，Ｙ，Ｚの各方向の負荷イナーシャの値と、予めメモリ２６内に設定された各方向ごとのイナーシャの閾値との比較を行う（ステップＳ２）。
各方向の負荷イナーシャがいずれも閾値を超えない場合には、関節１３におけるモータ軸の角速度の制限最高速度をイナーシャに応じた新たな値に更新することなく、或いは既に制限がかけられていた場合には、初期設定値である初期制限最高速度に戻して処理を終了する。
【００２２】
また、各方向の負荷イナーシャのいずれか一つでも閾値を超える場合には、ＣＰＵ２１は、関節１３におけるモータ軸の角速度の制限最高速度を各方向のイナーシャに応じて新たな値に更新する処理を行う。
まず、メモリ２６内には予めロボット１０について仕様上許容されるＸ，Ｙ，Ｚの各方向の負荷イナーシャの最大値Icx,Icy,Iczが予め記録されており、これを読み出して、新たに登録された各方向の負荷イナーシャの値Ixx,Iyy,Izzとの比率Rx,Ry,Rzが求められる（ステップＳ３）。
そして、比率Rx,Ry,Rzの中で最大値Rが求められる（ステップＳ４）。
ついで、求められた最大比率Rの値と各関節１３のサーボモータ１６の初期制限最高速度Sj5，Sj6から次式(1),(2)により新たな制限最高速度Sj5’，Sj6’を算出し、その体をメモリ２６内に登録する（ステップＳ５）。
Sj5’＝Sj5×（1−0.3×R）    …(1)
Sj6’＝Sj6×（1−0.3×R）    …(2)
【００２３】
第一の制限設定手段としての処理では、上述のようにして制限最高速度の更新が行われる。
なお、制限最高速度Sj5’，Sj6’の算出式は、各関節１３のサーボモータやその軸受が目標寿命まで耐久させること或いはロボットの非常停止、緊急停止を効果的に行うことを目的として経験的に求められた関係式であり、耐久試験やシミュレーションにより求められた目標寿命まで耐久させるための他の関係式や非常停止や緊急停止を速やかに行うための試験により求められた他の関係式を採用しても良い。
【００２４】
また、上記処理においては、ロボット１０のアーム先端部１４に最も近い第６関節と次に近い第５関節のサーボモータ１６のみを最高速度制限の対象としているが、これは、ツール１５の負荷イナーシャの影響が、アーム先端部１４に近い関節１３ほど影響を受けやすいことによる。ロボット１０の設計仕様や構造によってはツール１５のイナーシャの影響を受けることとなる他の関節１３についても速度制限の対象としても良いことはいうまでもない。
また、登録された負荷イナーシャの大きさによって、第１〜第４関節１３についてアーム先端１４に近い位置から順番に速度制限を設ける対象に追加する処理を行っても良い。
【００２５】
（制御装置が行う動作制御手段としての処理）
図４はＣＰＵ２１が所定の処理プログラムにより教示から動作の実行までの制御を行う場合のフローチャートである。
入力手段２７から、ロボット１０のツール１５の移動軌跡の指標となる教示点の位置の入力が行われると（ステップＳ１１）、ＣＰＵ２１は、アーム先端部１４が入力された教示点に到達するまでに描くべき直線或いは曲線の軌跡と、その軌跡に沿って所定間隔で配置される複数の補間点（移動目的位置）の座標を周知の演算処理によって求める（ステップＳ１２）。
【００２６】
さらに、ＣＰＵ２１は、各補間点の座標から、ロボット１０の各関節１３のサーボモータ１６の位置指令の出力を当該指令の出力周期ごとに順番に算出する（ステップＳ１３）。
さらに、算出された第５及び第６関節のサーボモータ１６の位置指令から、二つの関節１３のサーボモータ１６の角速度が求められる（ステップＳ１４）。そして、前述の第一の制限設定手段の処理に基づいて求められた制限最高速度を超えるか否かを判定する（ステップＳ１５）。
【００２７】
第５又は第６関節のいずれか一方でも算出角速度が各々の制限最高速度を超える場合には、制限最高速度を超えないように位置指令が修正される（ステップＳ１６）。そして、その位置指令がメモリ２６内に記憶される（ステップＳ１７）。
また、ステップＳ１５の判定により、制限最高速度を超えないときには、ステップＳ１３で求められた位置指令がそのままメモリ２６内に記憶される。
【００２８】
次いで、教示点入力による全ての位置指令がメモリ２６内に記録されたかを判定し（ステップＳ１８）、全ての位置指令が求まっていない場合には、ステップＳ１３に戻って次の位置指令の算出を行い、全ての位置指令が完了した場合には処理を終了する。
【００２９】
上記処理により、ロボット１０に一連の動作を行わせるための第１〜第６関節の各サーボモータ１６の位置指令からなる動作プログラムがメモリ２６内に生成される。
そして、ロボット１０の駆動時には、かかる動作プログラムがメモリ２６内から読み出され、順番に各サーボモータ１６の位置指令が出力され、図２に示す制御系のフィードバック制御及びフィードフォワード制御にかけられて、ロボットの動作制御が行われる。
【００３０】
（実施形態の効果）
上記構成からなるロボット制御装置２０では、ロボット１０のアームの先端部１４の負荷イナーシャが予め設定された閾値を超える場合に、第５及び第６関節１３，１３のサーボモータ１６の軸速度についてイナーシャに応じた制限速度を設定し、当該制限の範囲内でロボット１０に動作を行わせることができるので、使用するツール１５によってその負荷イナーシャの値が変動した場合であっても、仕様の異なる別のロボットを用意する必要がなく作業を行うことが可能となり、ロボットの汎用性の向上を図ることが可能となる。
さらに、位置ループゲイン演算部３７により、第５及び第６関節１３，１３のサーボモータの軸速度について制限を設けるので、ロボット１０の各部に生じる負担による耐久性の向上を図り、或いは、非常停止や緊急停止時をより速やか且つ円滑に行うことが可能となる。
【００３１】
第４〜第６関節１３における制御系において、ツール１５の負荷イナーシャの値に応じて各サーボモータ１６の位置ループゲインの制限値を設定する位置ループゲイン演算部３７を備えるので、アーム全体の振動、特に共振を抑制することができ、ロボット１０の動作の安定化を図ることが可能となる。
【００３２】
（その他）
制限最高速度に従ってロボット１０の動作制御を行う動作制御手段としての処理では、ロボット１０の動作プログラムを生成する段階で予め制限最高速度を超えないように位置指令を算出しているが、特にこれに限定されず、例えば、ロボット１０の動作の実行中に制限最高速度を超えないように動作制御を行っても良い（例えば、ロボット１０の作動時においてエンコーダ１７からの速度帰還出力から速度を見張り、制限最高速度を超えないように動作制御を行っても良い）。
【００３３】
また、第二の制限設定手段としての位置ループゲイン演算部３７では、負荷イナーシャに応じて位置ループゲインの制限を行っているが、位置ループゲインに限らず、速度制御部３２に対するフィードフォワード制御によってアーム先端部側のサーボモータ１６の加速度を、負荷イナーシャの値に対応する制限加速度に修正する処理を行っても良い。
【００３４】
また、第一の制限設定手段としての処理では、負荷イナーシャに応じてアーム先端部側のサーボモータ１６の軸速度の制限を行っているが、軸速度に限らず、各サーボモータ１６のトルク値の制限を加えても良い。また、軸速度とトルク値の両方に制限を加えても良い。
また、第一の制限設定手段としての処理では、負荷イナーシャに応じてツールの荷搬重量について制限を加えても良い。また、ツール１５が溶接ガンではなく、ワークの保持及び搬送を行うハンド等の場合には、ハンドとワークの合計重量を荷搬重量として制限を加えるようにすることが望ましい。この場合も、各サーボモータ１６の軸速度とトルク値の制限と同時に制限を加えても良い。
【００３５】
また、上記ロボットの制御装置２０では、ツール１５の各軸回りの負荷イナーシャが予め分かっており、入力手段２７からの数値入力により負荷イナーシャのデータが取得可能な場合を例示したが、ツール１５の負荷イナーシャ（ワークを保持するツールの場合にはワーク保持状態での負荷イナーシャ）が未知の場合には、特開2004-25387号に記載されたロボットのアーム先端部の負荷重量及び重心位置自動算出方法を実行する算出手段を制御装置２０に設けても良い。
かかる算出方法では、ツール１５に替えて負荷重量及び重心位置が既知である負荷をロボット１０のアーム先端１４に装着し、重心位置と負荷重量とから理論的に求まる最先端関節（第６関節）のサーボモータの理論電流値と実際に装着して検出される実電流値との比から補正係数を算出する。
そして、未知のツール１５を装着して少なくとも未知のツール１５に対して四以上の姿勢からそれぞれ得られる最先端のサーボモータ１６の検出駆動電流を検出する。その一方で、サーボモータ１６の軸回りの力学的に生じるトルクと駆動電流に基づいて生じるトルクとから成立するツールの負荷重量及びＸ，Ｙ，Ｚ軸の重心位置とが未知数の方程式を前述した四以上の姿勢により連立し、前述の補正係数と各検出電流とに基づいて負荷重量と重心位置を算出する。
以上の処理をロボット制御装置２０に実行させることで、負荷イナーシャが未知のツール１５について当該負荷イナーシャの算出を行い、メモリ２６に登録し、第一及び第二の制限設定手段による各種の制限を行っても良い。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態の全体構成図である。
【図２】図１に開示したロボット制御装置の制御系を示すブロック線図である。
【図３】第一の制限設定手段としての処理を行う場合のフローチャートである。
【図４】動作制御手段としての処理を示すフローチャートである。
【符号の説明】
【００３７】
１０  ロボット
１３  関節
１４  アーム先端
１５  ツール
１６  サーボモータ
２０  ロボット制御装置
２１  ＣＰＵ
２２  ＲＯＭ
２６  メモリ
３７  位置ループゲイン演算部（第二の制限設定部）
【図１】
2007066001.tif 000003
【図２】
2007066001.tif 000004
【図３】
2007066001.tif 000005
【図４】
2007066001.tif 000006