(57)【要約】【課題】７軸のマニピュレータの冗長性を有するロボットにおいて、予め指定された関節軸において、固定して軌道を移動する場合、振動及び歯車機構の温度上昇を抑制することができるロボット制御方法及びロボット制御装置を提供する。【解決手段】複数の教示点に基づいて目標軌道を設定し、目標軌道上の各教示点における各関節軸の回転角度を算出し、目標軌道全体において関節軸のうち回転角度変動が最小の関節軸を固定軸として、固定軸を除く残り６軸の関節軸における各教示点における回転角度を再算出するようしている。固定軸である関節軸をブレーキで停止状態にして、再算出の結果に基づいて６軸の関節軸のサーボモータを制御する。【選択図】図３
2013223896.tif 000002
【特許請求の範囲】
【請求項１】
７軸の関節軸を有するマニピュレータの各関節軸の回転系アクチュエータを制御するロボット制御方法において、
複数の教示点に基づいて目標軌道を設定し、
前記目標軌道上の各教示点における各関節軸の回転角度を算出し、
前記目標軌道全体において前記関節軸のうち回転角度変動が最小の関節軸を固定軸として、前記固定軸を除く残り６軸の関節軸について各教示点における回転角度を再算出し、
前記固定軸である関節軸をメカブレーキで停止状態にして、前記再算出の結果に基づいて前記６軸の関節軸の回転系アクチュエータを制御することを特徴とするロボット制御方法。
【請求項２】
７軸の関節軸を有するマニピュレータの各関節軸の回転系アクチュエータを制御するロボット制御装置において、
複数の教示点に基づいて目標軌道を設定する目標軌道設定部と、
前記目標軌道上の各教示点における各関節軸の回転角度を算出する第１算出部と、
前記目標軌道全体において前記関節軸のうち回転角度変動が最小の関節軸を固定軸として、前記固定軸を除く残り６軸の関節軸について各教示点における回転角度を再算出する第２算出部と、
前記各関節軸に設けられたメカブレーキと、
前記固定軸である関節軸をメカブレーキで停止状態にして、前記再算出の結果に基づいて前記６軸の関節軸の回転系アクチュエータを制御する制御部を備えることを特徴とするロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御方法及びロボット制御装置に関する。
【背景技術】
【０００２】
従来、７軸以上の冗長自由度を備える多関節ロボットでは、その軸数が多く、各軸に対する指令値が一意的に決定できないため、経路制御時の計算に要する時間が６軸ロボットの経路制御時に比してはるかに多くなる問題がある。
【０００３】
特許文献１では、この課題を解決するために、７軸ロボットの場合は、１つの軸を指定軸とし、８軸ロボットの場合は、２つの軸を指定軸として、これら指定軸を固定したままで、残りの軸（すなわち、６軸）の経路計算を行うようにしている。この方法により、障害物を避ける場合などにおいて、ハンド位置及び姿勢を固定にする条件を付与することにより、ジョグ送り等では従来通りの６軸ロボットと同様の時間及び作業ができる利点がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６２-２５１９０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１では、明示はされてはいないが、指定軸として固定する場合、当該指定軸をサーボロックすることにより固定していることが分かる。しかし、サーボロックでは、指定軸に設けられたサーボモータが微小な正転及び逆転を高頻度で繰り返し、この繰り返しにより、サーボモータに連結された減速機の歯車機構のバックラッシが許容する範囲で振動が発生して騒音、及び当該歯車機構の温度上昇の原因になる。
【０００６】
本発明の目的は、７軸のマニピュレータの冗長性を有するロボットにおいて、予め指定された関節軸を固定して軌道を移動する場合、振動及び歯車機構の温度上昇を抑制することができるロボット制御方法及びロボット制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記問題点を解決するために、請求項１の発明は、７軸の関節軸を有するマニピュレータの各関節軸の回転系アクチュエータを制御するロボット制御方法において、複数の教示点に基づいて目標軌道を設定し、前記目標軌道上の各教示点における各関節軸の回転角度を算出し、前記目標軌道全体において前記関節軸のうち回転角度変動が最小の関節軸を固定軸として、前記固定軸を除く残り６軸の関節軸について各教示点における回転角度を再算出し、前記固定軸である関節軸をメカブレーキで停止状態にして、前記再算出の結果に基づいて前記６軸の関節軸の回転系アクチュエータを制御することを特徴とするロボット制御方法を要旨としている。
【０００８】
請求項２の発明は、７軸の関節軸を有するマニピュレータの各関節軸の回転系アクチュエータを制御するロボット制御装置において、複数の教示点に基づいて目標軌道を設定する目標軌道設定部と、前記目標軌道上の各教示点における各関節軸の回転角度を算出する第１算出部と、前記目標軌道全体において前記関節軸のうち回転角度変動が最小の関節軸を固定軸として、前記固定軸を除く残り６軸の関節軸について各教示点における回転角度を再算出する第２算出部と、前記各関節軸に設けられたメカブレーキと、前記固定軸である関節軸をメカブレーキで停止状態にして、前記再算出の結果に基づいて前記６軸の関節軸の回転系アクチュエータを制御する制御部を備えることを特徴とするロボット制御装置を要旨としている。
【発明の効果】
【０００９】
請求項１の発明によれば、７軸のマニピュレータの冗長性を有するロボットにおいて、予め指定された関節軸を固定して軌道を移動する場合、振動及び歯車機構の温度上昇を抑制することができるロボット制御方法を提供できる。
【００１０】
請求項２の発明によれば、７軸のマニピュレータの冗長性を有するロボットにおいて、予め指定された関節軸において、固定して軌道を移動する場合、振動及び歯車機構の温度上昇を抑制することができるロボット制御装置を提供できる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態の冗長自由度を有するマニピュレータのスケルトン図。
【図２】一実施形態のロボット制御装置の概略構成図。
【図３】一実施形態のロボット制御装置が実行するプログラムのフローチャート。
【図４】サーボモータとメカブレーキの概略構成図。
【発明を実施するための形態】
【００１２】
以下、本発明を具体化した一実施形態の７軸マニピュレータを制御するロボット制御装置及びロボット制御方法を図１〜図４を参照して説明する。
まず、本実施形態の作業自由度に対して冗長自由度を有するマニピュレータについて説明する。
【００１３】
図１に示すように、マニピュレータ１０は、８個のリンク１１〜１８が７個の関節２１〜２７により直列に連結されて形成されている。多関節ロボットであるマニピュレータ１０は、７個の関節２１〜２７においてリンク１２〜１８が旋回することのできる７自由度（自由度ｎ＝７）を有するロボットであり、その作業空間の次元数（次元数ｍ）は６であって、１（＝ｎ−ｍ）の冗長性を有する。
【００１４】
第１リンク１１は一端が床面ＦＬに固定され、他端が第１関節２１の一側に接続されている。第１関節２１の他側には、第２リンク１２の一端が接続され、第２リンク１２の他端には第２関節２２の一側が接続されている。以下同様に、第３リンク１３、第４リンク１４、第５リンク１５、第６リンク１６、第７リンク１７及び第８リンク１８が、それぞれ第３関節２３、第４関節２４、第５関節２５、第６関節２６及び第７関節２７を介して順に連結されている。
【００１５】
第１関節２１の他側は一側に対して、矢印３１に示すように、図１において上下方向に延びる軸を中心に回転可能とされており、これにより、第２リンク１２は隣接する第１リンク１１に対して、第１関節２１の回転軸（Ｊ１軸）を中心に矢印３１方向に旋回可能である。
【００１６】
また、第２関節２２の他側は一側に対して、矢印３２に示すように、図１において紙面に垂直な方向に延びる軸（Ｊ２軸）を中心に回転可能とされている。これにより、第３リンク１３は隣接する第２リンク１２に対して、第２関節２２の回転軸を中心に矢印３２方向、すなわち、上下方向に回転可能である。
【００１７】
以下、第３関節２３、第４関節２４、第５関節２５、第６関節２６及び第７関節２７についてもそれぞれ、回転可能とされており、第４リンク１４、第５リンク１５、第６リンク１６、第７リンク１７及び第８リンク１８も、それぞれ関節２３〜２７の回転軸（Ｊ３軸〜Ｊ７軸）を中心に、矢印３３〜３７方向に旋回可能である。尚、本願の全体にわたって、第１関節２１〜２７を介して連結されているリンク１１〜１８同士を、互いに隣接するリンク１１〜１８という。また、Ｊ１軸〜Ｊ７軸は、関節軸に相当する。
【００１８】
なお、Ｊ２軸、Ｊ４軸及びＪ６軸の回転方向は、図１に示すように、重力加速度が働く方向と一致している。
図１に示すように、第１関節２１には第１サーボモータ４１が取り付けられており、電力が供給されることにより、第２リンク１２を図示しない減速機を介して第１リンク１１に対して旋回させる。
【００１９】
また、第２関節２２には第２サーボモータ４２が取り付けられており、電力が供給されることにより、第３リンク１３を図示しない減速機を介して第２リンク１２に対して旋回させる。以下、同様に、第３関節２３、第４関節２４、第５関節２５、第６関節２６及び第７関節２７にはそれぞれサーボモータ４３〜４７が取り付けられており、電力が供給されることにより、各々リンク１４〜１８を図示しない減速機を介して旋回させる。
【００２０】
なお、各モータは、各関節内に設けられるが、図１では、説明の便宜上、関節とは分離して図示している。また、本実施形態では回転系アクチュエータとしてサーボモータであるＡＣモータが使用されているが、限定されるものではない。
【００２１】
第８リンク１８の先端には、エンドエフェクタとしてのツール４９が取り付けられている。ツール４９は第８リンク１８とともに、第７関節２７の回転軸（Ｊ７軸）を中心に図１に示すように矢印３７方向に旋回可能とされている。ツール４９は、例えば、ワーク等を把持可能なハンドである。なお、ツール４９の種類は、本発明とは関係しないため、限定されるものではない。
【００２２】
上述したようにマニピュレータ１０は、第１サーボモータ４１〜第７サーボモータ４７を駆動して第２リンク１２〜第８リンク１８を回転させることにより、第２リンク１２〜第８リンク１８の回転角度が累積して先端部にあるツール４９に働くため、ツール４９の先端の位置および姿勢を、その作業内容に応じた目標位置および目標姿勢に一致させることが可能である。
【００２３】
次に、図２を参照して、前記マニピュレータ１０を制御するロボット制御装置としてのコントローラＲＣを中心とした多関節ロボットの電気的な構成を説明する。
コントローラＲＣは、コンピュータ９０と、コンピュータ９０に電気的に接続されたＰＷＭジェネレータ５１〜５７と、ＰＷＭジェネレータ５１〜５７に電気的に接続されたサーボアンプ６１〜６７を有する。各サーボアンプ６１〜６７はそれぞれ第１サーボモータ４１〜第７サーボモータ４７に電気的に接続されている。
【００２４】
コンピュータ９０は、制御指令をＰＷＭジェネレータ５１〜５７に出力し、ＰＷＭジェネレータ５１〜５７は、当該制御指令に基づいてＰＷＭ信号をサーボアンプ６１〜６７に出力する。サーボアンプ６１〜６７は、その出力に応じてサーボモータ４１〜４７を作動させることにより、各リンク１２〜１８を回転させる。
【００２５】
前記サーボモータ４１〜４７にはロータリエンコーダ７１〜７７が内蔵されており、インターフェイス８０を介してコンピュータ９０と接続されている。ロータリエンコーダ７１〜７７は、各々のサーボモータ４１〜４７の回動角度を検出することにより、すなわち、リンク１２〜１８のそれぞれが隣接するリンク１１〜１７に対する関節角度（なお、関節軸の回転角度ということがある）を検出して、その検出信号をコントローラＲＣに送信する。ロータリエンコーダ７１〜７７は、回転角度検出器に相当する。なお、回転角度検出器としては、ロータリエンコーダに限定するものではなく、レゾルバ、或いは、ポテンショメータであってもよい。
【００２６】
なお、第１サーボモータ４１〜第７サーボモータ４７に対してロータリエンコーダ７１〜７７を設ける代わりに、リンク１１〜１８または第１関節２１〜第７関節２７に、リンク１１〜１８の関節角度（関節軸の回転角度）を直接に検出可能なセンサを取り付けてもよい。
【００２７】
図４に示すように、各サーボモータ４１〜４７の回転部分にはそれぞれメカブレーキとしてのブレーキ１４１〜１４７が設けられている。なお、図４では、説明の便宜上、ＰＷＭジェネレータ５１〜５７、サーボアンプ６１〜６７、ブレーキ４１〜４７、ブレーキ１４１〜１４７、及び後述のブレーキ回路１０１〜１０７は、それぞれ１つのブロックで図示している。
【００２８】
前記コンピュータ９０は、ＣＰＵ９１、ＲＯＭ９２、ＲＡＭ９３、及びハードディスク等の不揮発性の記憶部９４、及びインターフェイス９５等を備え、バス９６を介して電気的に接続されている。
【００２９】
記憶部９４には、各種データ、ロボットに各種作業を行わせるための作業プログラム、各種パラメータ等が記憶されている。すなわち、本実施形態のロボットは、ティーチングプレイバック方式で作動するロボットであり、前記作業プログラムが実行されることにより、前記マニピュレータ１０が動作する。ＲＯＭ９２は、システム全体のシステムプログラムが記憶されている。ＲＡＭ９３は、ＣＰＵ９１の作業用のメモリであって、各種演算等が実行されるときに一時的にデータが格納される。ＣＰＵ９１は、目標軌道設定部、第１算出部、第２算出部、及び制御部に相当する。
【００３０】
また、ＣＰＵ９１には、ブレーキ回路１０１〜１０７が電気的に接続されている。ＣＰＵ９１が、後述する実施形態の作用で説明する停止信号を、ブレーキ回路１０１〜１０７の内の１つのブレーキ回路に出力すると、該停止信号を入力した１つのブレーキ回路はブレーキを動作させてサーボモータの動作を独立して停止可能である。
【００３１】
なお、本実施形態では、本発明と関係しないため詳細な説明は省略するが、後述する入力装置８２からの停止信号をＣＰＵ９１が受信した場合、該ＣＰＵ９１は、全サーボモータ４１〜４７に対して停止信号を出力する。この場合は、該停止信号を入力した全ブレーキ回路１０１〜１０７はブレーキ１４１〜１４７を作動して全サーボモータ４１〜４７を停止する。
【００３２】
また、コントローラＲＣには入力装置８２が前記インターフェイス９５を介して接続されている。入力装置８２は、図示しないモニター画面及び各種入力キー等を有する操作盤であり、ユーザーが各種のデータを入力操作可能とされている。入力装置８２は、多関節ロボットの電源スイッチが設けられるとともに、コンピュータ９０に対して、マニピュレータ１０の先端部にあるツール４９の先端（以下、手先という）の最終目標位置および最終目標姿勢、ツール４９の先端の補間点における位置および姿勢の入力、並びに、冗長性を利用したマニピュレータ１０の姿勢変更のためのジョグ操作等による入力が可能となっている。
【００３３】
（実施形態の作用）
次に、本実施形態による多関節ロボットのコントローラＲＣにおける作業プログラム再生のフローチャートを図３を参照して説明する。
【００３４】
（Ｓ１０）
ＣＰＵ９１は、まず記憶部９４から作業プログラムのプログラム行を読込みする。
（Ｓ２０）
Ｓ２０では、ＣＰＵ９１は、プログラム行、すなわち、動作指令、教示点、姿勢が記述された行があるか否かを判定する。なければ、この作業プログラム再生を終了する。動作指令及び教示点が記述された行があればＳ３０に移行する。
【００３５】
（Ｓ３０）
ＣＰＵ９１は、プログラム行に記述された行の軌道計画を行う。すなわち、ＣＰＵ９１は、前記プログラム行に記述されている教示点及び姿勢に基づいて目標軌道を設定する。また、ＣＰＵ９１は、図示しない補間周期カウンタをゼロに設定する。
【００３６】
（Ｓ４０）
Ｓ４０では、ＣＰＵ９１は補間が終了したか否かを判定する。
すなわち、前記補間周期カウンタと軌道計画で定められた補間点数とを比較し、補間周期カウンタが補間点数以上ならば、その行の動作は終了したことになり、処理はＳ１０に戻って次に選択される行を実行する。一方、補間周期カウンタが補間点数未満の場合は、その行の動作は終了しておらず、次のＳ５０の処理に移行する。
【００３７】
（Ｓ５０）
Ｓ５０では、ＣＰＵ９１は、動作補間を行う。ＣＰＵ９１は、前記軌道計画に基づいて、補間周期毎のツール４９（エンドエフェクタ）の目標位置を作成する。
【００３８】
（Ｓ６０）
Ｓ６０では、ＣＰＵ９１は、前記目標軌道上の各点（なお、各点には教示点及び補間点を含む）における手先位置姿勢から関節角度を求めるために逆変換演算を行う。
【００３９】
ここで、各点における第１関節２１〜第７関節２７の関節角度θ１，θ２，θ３，…，θ７とし、手先座標（ｘ，ｙ，ｚ）及び手先姿勢（ａ，ｂ，ｃ）とすると、ベクトルΘ及び手先位置姿勢Ｘは下記のように表される。
【００４０】
【数１】
2013223896.tif 000003
各関節角度θ１，θ２，θ３，…，θ７は、式（２）に示すように表すことができ、これらの式は、逆変換式である。本ステップでは、式（２）により、手先位置姿勢Ｘと姿勢パラメータΦにより、各関節角度θ１，θ２，θ３，…，θ７を算出する。
【００４１】
【数２】
2013223896.tif 000004
また、上記式（１）、式（２）からは、式（３）及び式（４）を得ることができる。また、式（３）、式（４）において、Ｊはヤコビ行列である。
【００４２】
【数３】
2013223896.tif 000005
【００４３】
【数４】
2013223896.tif 000006
このため、ｄΘは、式（５）で表すことができる。
【００４４】
【数５】
2013223896.tif 000007
ＣＰＵ９１は、この式（５）を使用して、これよりニュートンラプソン法、或いは準ニュートン法等の収束計算を行って、手先位置姿勢ＸからベクトルΘを求める。
【００４５】
（Ｓ７０）
Ｓ７０ではＣＰＵ９１は、Ｓ６０で求めた、目標軌道全体において、最も回転角度の変動が少ない関節軸を、固定軸に設定する。
【００４６】
（Ｓ８０）
Ｓ８０ではＣＰＵ９１は、固定軸に設定された関節軸以外の残りの６軸の関節軸を対象として、前記目標軌道における各点（なお、各点には教示点及び補間点を含む）における手先位置姿勢から逆変換演算を行い、関節角度を求める。すなわち、６軸の関節軸の回転角度の再算出を行う。なお、各点における６軸の関節軸の関節角度の求め方は公知であるため、説明を省略する。
【００４７】
（Ｓ９０）
Ｓ９０では、ＣＰＵ９１は、固定軸に設定した関節軸に対しては、当該関節軸のブレーキ回路に停止信号を出力するとともに、前記６軸の関節軸に対して、Ｓ４０で求めた関節角度に基づく制御指令を生成して当該関節軸のサーボモータを制御する。
【００４８】
また、ＣＰＵ９１は、補間周期カウンタに１を加算して、Ｓ４０に戻る。
上記のようにして、ＣＰＵ９１は、作業プログラム再生時には、固定軸に設定された関節軸は、ブレーキで停止状態にするため、マニピュレータ１０が作動する際は、６軸ロボットとして移動することができる。この６軸ロボットとして移動する際は、固定軸に設定されたサーボモータは、メカブレーキとしてのブレーキが作動するため、該サーボモータに作動連結されている減速機（図示しない）の歯車機構のバックラッシが許容する範囲で振動が発生することによる騒音、及び当該歯車機構の温度上昇の原因になることがない。
【００４９】
このような作業プログラムは、例えば、ＰＴＰ（ｐｏｉｎｔ  ｔｏ  ｐｏｉｎｔ）動作が要求される場合において、マニピュレータの教示点から教示点への移動が迅速に行われるため有効である。また、作業プログラムとして、ＰＴＰ（ｐｏｉｎｔ  ｔｏ  ｐｏｉｎｔ）動作以外の動作においても、７軸ロボットを６軸ロボットとして使用させたい場合にも有効である。
【００５０】
本実施形態では、下記の特徴を有する。
（１）  本実施形態のロボットの制御方法は、複数の教示点に基づいて目標軌道を設定し、目標軌道上の各教示点における各関節軸の回転角度を算出し、目標軌道全体において関節軸のうち回転角度変動が最小の関節軸を固定軸として、固定軸を除く残り６軸の関節軸について各教示点における回転角度を再算出するようしている。そして、固定軸である関節軸をブレーキ１４１〜１４７（メカブレーキ）で停止状態にして、再算出の結果に基づいて６軸の関節軸のサーボモータ（回転系アクチュエータ）を制御するようにしている。この結果、本実施形態によれば、７軸のマニピュレータの冗長性を有するロボットにおいて、予め指定された関節軸を固定して軌道を移動する場合、振動及び歯車機構の温度上昇を抑制することができる。
【００５１】
（２）  本実施形態のロボット制御装置（コントローラＲＣ）のＣＰＵ９１は、目標軌道設定部として、複数の教示点に基づいて目標軌道を設定する。また、ＣＰＵ９１は、第１算出部としてと、前記目標軌道上の各教示点における各関節軸の回転角度を算出する。また、ＣＰＵ９１は、第２算出部として、目標軌道全体において関節軸のうち回転角度変動が最小の関節軸を固定軸として、固定軸を除く残り６軸の関節軸における各教示点における回転角度を再算出する。
【００５２】
また、ＣＰＵ９１は、制御部として、各関節軸に設けられたブレーキ１４１〜１４７（メカブレーキ）と、前記固定軸である関節軸をメカブレーキで停止状態にして、再算出の結果に基づいて６軸の関節軸のサーボモータ（回転系アクチュエータ）を制御する。この結果、本実施形態のコントローラＲＣによれば７軸のマニピュレータの冗長性を有するロボットにおいて、予め指定された関節軸を固定して軌道を移動する場合、振動及び歯車機構の温度上昇を抑制することができる。
【００５３】
なお、本発明の実施形態は前記実施形態に限定されるものではなく、下記のように変更しても良い。
・  前記実施形態では、アクチュエータをサーボモータとしてのＡＣモータを使用したが、ＤＣモータでもよく、ステッピングモータ等を使用してもよい。
【００５４】
・  前記実施形態では、７軸のマニピュレータのいずれか１つの軸を固定軸として設定することが有効としているが、この構成に限定するものではない。
例えばスカラ軸、すなわち、水平動作する関節軸を複数有するマニピュレータの場合には、Ｓ６０の処理を行ってその水平動作するいずれかの関節軸のうち、回転角度変動が最小の関節軸を固定軸としてもよい。
【符号の説明】
【００５５】
ＲＣ…コントローラ（ロボット制御装置）、
１０…マニピュレータ、１１〜１８…リンク、
４１〜４７…サーボモータ（回転系アクチュエータ）、
９１…ＣＰＵ（目標軌道設定部、第１算出部、第２算出部、制御部）。
【図１】
2013223896.tif 000008
【図２】
2013223896.tif 000009
【図３】
2013223896.tif 000010
【図４】
2013223896.tif 000011