(57)【要約】【課題】モータ、軸角度検出部、制御部を備えてトルク制御方式で角度位置を標準制御するものにあって、所定角度単位の分数倍となる駆動制御を可能とする。【解決手段】サーボ装置は、入力された指示角度に基づき、軸角度検出部の軸角度分解能Δの整数倍となる整数倍駆動指令を生成し、モータに与えてモータを駆動制御する標準制御を実行可能な制御部を備えている。制御部は、軸角度分解能Δの整数倍の指令が所定周期で所定パターンとなるように配列され、その平均値θａｖｅが軸角度分解能Δの分数倍となる分数倍駆動指令ａ〜ｈを生成する。制御部は、入力された指示角度に基づき、分数倍駆動指令ａ〜ｈをモータに与えてモータを駆動制御するマイクロ制御を実行し得る。【選択図】図６
2015033277.tif 000002
【特許請求の範囲】
【請求項１】
回転を出力するモータと、前記モータの回転出力により回転する軸の角度変化を所定角度単位で検出する軸角度検出部と、入力された指示角度に基づき、前記所定角度単位の整数倍となる整数倍駆動指令を生成し、前記モータに与えて前記モータを駆動制御する標準制御を実行可能な制御部と、を備えたサーボ装置において、
前記制御部は、前記所定角度単位の整数倍の指令が所定周期で所定パターンとなるように配列され、その平均値が前記所定角度単位の分数倍となる分数倍駆動指令を、前記入力された指示角度に基づき、前記モータに与えて前記モータを駆動制御するマイクロ制御を実行し得る、
ことを特徴とするサーボ装置。
【請求項２】
前記制御部は、前記マイクロ制御の実行中における前記軸角度検出部が軸の角度変化を検出する回数に関する配列が前記分数倍ごとに記録された期待値配列を有し、前記入力された指示角度に基づき前記分数倍駆動指令を前記モータに与える際、前記期待値配列と前記軸角度検出部により検出した軸の角度変化の回数との差分が近づくように、前記分数倍駆動指令を更新する、
ことを特徴とする請求項１に記載のサーボ装置。
【請求項３】
前記軸角度検出部は、前記軸の回転変化をアナログ値として検出する検出器を有し、
前記制御部は、前記アナログ値を前記所定角度単位のデジタル値にＡＤ変換すると共に、前記標準制御において所定回数の前記デジタル値を平均化して前記所定角度単位の信号として生成し、前記マイクロ制御において前記デジタル値を平均化する回数を前記所定回数よりも小さくする、
ことを特徴とする請求項１又は２に記載のサーボ装置。
【請求項４】
請求項１ないし３のいずれか１項に記載のサーボ装置を、少なくとも１箇所の関節に有する多関節ロボット。
【請求項５】
回転を出力するモータと、前記モータの回転出力により回転する軸の角度変化を所定角度単位で検出する軸角度検出部と、入力された指示角度に基づき、前記所定角度単位の整数倍となる整数倍駆動指令を生成し、前記モータに与えて前記モータを駆動制御する標準制御を実行可能な制御部と、を備えたサーボ装置の制御方法において、
前記制御部が、前記所定角度単位の整数倍の指令が所定周期で所定パターンとなるように配列され、その平均値が前記所定角度単位の分数倍となる分数倍駆動指令を、前記入力された指示角度に基づき、前記モータに与えて前記モータを駆動制御するマイクロ制御を実行するマイクロ制御工程を備えた、
ことを特徴とするサーボ装置の制御方法。
【請求項６】
前記制御部は、前記マイクロ制御の実行中における前記軸角度検出部が軸の角度変化を検出する回数に関する情報が前記分数倍ごとに記録された期待値配列を有し、
前記制御部が、前記マイクロ制御工程において、前記入力された指示角度に基づき前記分数倍駆動指令を前記モータに与える際、前記期待値配列と前記軸角度検出部により検出した軸の角度変化の回数との差分が近づくように、前記分数倍駆動指令を更新する、
ことを特徴とする請求項５に記載のサーボ装置の制御方法。
【請求項７】
前記軸角度検出部は、前記軸の回転変化をアナログ値として検出する検出器を有し、
前記制御部は、前記アナログ値を前記所定角度単位のデジタル値にＡＤ変換すると共に、前記標準制御において所定回数の前記デジタル値を平均化して前記所定角度単位の信号として生成し、
前記制御部が、前記マイクロ制御工程において、前記デジタル値を平均化する回数を前記所定回数よりも小さくする、
ことを特徴とする請求項５又は６に記載のサーボ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された指示角度に基づき、モータを駆動する駆動指令を生成し、駆動指令をモータに与えて、モータを駆動制御するサーボ装置、及びサーボ装置の制御方法に関する。
【背景技術】
【０００２】
近年、例えば多関節ロボットを複数台設置して、人間のように作業を行うセルロボット装置では、多関節ロボットの台数が増える傾向にあり、それら多関節ロボットの各関節に用いるサーボ装置としては、小型でかつ安価なものが求められる。そこで産業用の多関節ロボットにおいては、関節を駆動するためのサーボ装置として、ホビー用のサーボ装置を発展させたロボット用のサーボ装置が多用されている。
【０００３】
ロボット用のサーボ装置（例えば非特許文献１参照）は、例えばＤＣブラシレスモータと、その出力回転を検出するポテンショメータと、制御部とを備えている。このサーボ装置の制御部は、ＲＳ４８５等のシリアル信号で指示角度が入力されると、ポテンショメータの検出角度に基づきモータをフィードバック制御しつつ、モータをトルク制御（弾性制御）方式で角度位置を制御する。このポテンショメータは、抵抗体の電圧変化をアナログ的に検出し、例えば１２ビット（４０９６段階）でデジタル信号にＡＤ変換するもので、０．１度（３６００段階）の分解能を実現している。
【０００４】
なお、軸角度分解能を上げるためには、ＡＤ変換の分解能を上げることも考えられる。しかしながら、更にＡＤ変換の分解能を上げてもノイズにより検出値の信頼性が無いので軸角度分解能を向上させることができない。現状では、更に軸角度分解能を上げることは、ＡＤ変換におけるノイズの低減を飛躍的に改善しない限り困難である。
【０００５】
一方、ステッピングモータにおいて、マイクロステップ駆動を可能にするものが提案されている（特許文献１参照）。このものは、近接した２つのフルステップの励磁状態を時間比で切換えて、フルステップ間の軸角度を位置制御することを可能としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１６５４９３号公報
【非特許文献】
【０００７】
【非特許文献１】双葉電子工業  ＲＳ４０５ＣＢ／ＲＳ４０６ＣＢ取扱説明書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記非特許文献１のサーボ装置における指示角度とトルクとの関係は、非特許文献１のＦｉｇ．４．１に示されているように、分解能未満の角度位置のトルク制御は不能となっている。一方、近年、多関節ロボットの先端部にカメラを取付け、作業時等に撮影した画像に基づき、多関節ロボットの先端位置を微小に移動することが求められることがある。例えば２０４８×１５３６画素のカメラにより距離５０ｍｍで撮像した画像では、画素ピッチは約２８μｍとなる。しかしながら、例えば多関節ロボットの先端位置を移動する関節が先端位置から２００ｍｍの場合で、０．１ｍｍの角度位置で制御すると、その移動分解能は約３５０μｍとなる。従って、画像認識の分解能が２〜３画素ピッチであったとしても、サーボ装置の角度位置制御の分解能を少なくとも１／４以下にすることが求められる。
【０００９】
一方、ステッピングモータは、電気角で機械角（軸角度）を等分した駆動を行うものであり、高速回転動作に適さないという問題がある。高速回転動作が困難なステッピングモータを産業用の多関節ロボットに用いようとする場合、減速機を介在すると駆動速度が遅くなり、生産速度の低下を招く。減速機を介在させないためには、ステッピングモータの出力トルクを大きくする必要があるが、多関節ロボットの関節として搭載する出力や脱調の防止等を考慮すると、大型化が必要となり、搭載性の観点からも、ステッピングモータの採用は困難である。
【００１０】
そこで本発明は、モータ、軸角度検出部、制御部を備えてトルク制御方式で角度位置を標準制御するものにあって、所定角度単位の分数倍となる駆動制御を可能とするサーボ装置、及びサーボ装置の制御方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１１】
本発明は、回転を出力するモータと、前記モータの回転出力により回転する軸の角度変化を所定角度単位で検出する軸角度検出部と、入力された指示角度に基づき、前記所定角度単位の整数倍となる整数倍駆動指令を生成し、前記モータに与えて前記モータを駆動制御する標準制御を実行可能な制御部と、を備えたサーボ装置において、前記制御部は、前記所定角度単位の整数倍の指令が所定周期で所定パターンとなるように配列され、その平均値が前記所定角度単位の分数倍となる分数倍駆動指令を、前記入力された指示角度に基づき、前記モータに与えて前記モータを駆動制御するマイクロ制御を実行し得ることを特徴とする。
【００１２】
また本発明は、回転を出力するモータと、前記モータの回転出力により回転する軸の角度変化を所定角度単位で検出する軸角度検出部と、入力された指示角度に基づき、前記所定角度単位の整数倍となる整数倍駆動指令を生成し、前記モータに与えて前記モータを駆動制御する標準制御を実行可能な制御部と、を備えたサーボ装置の制御方法において、前記制御部が、前記所定角度単位の整数倍の指令が所定周期で所定パターンとなるように配列され、その平均値が前記所定角度単位の分数倍となる分数倍駆動指令を、前記入力された指示角度に基づき、前記モータに与えて前記モータを駆動制御するマイクロ制御を実行するマイクロ制御工程を備えたことを特徴とする。
【発明の効果】
【００１３】
本発明によると、平均値が所定角度単位の分数倍となる分数倍駆動指令でモータを駆動制御するマイクロ制御を実行し得るので、ステッピングモータでなくても、所定角度単位の分数倍となる駆動制御を可能なサーボ装置を提供できる。特に、迅速な駆動は標準制御により達成でき、微小な駆動はマイクロ制御により達成することができる。これにより、例えばロボットの関節に本サーボ装置を適用することで、迅速な移動と微小な移動とを両立するロボットの提供も可能となる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態に係るサーボ装置を示すブロック図。
【図２】ポテンショメータの構造を示す説明図。
【図３】サーボ装置のトルク制御における軸角度誤差と出力トルクとの関係を示す図。
【図４】サーボ装置のマイクロ制御を示すフローチャート。
【図５】マイクロ制御における駆動指令の配列を示す図。
【図６】図５の駆動指令の配列を時系列で示す図。
【図７】マイクロ制御における軸角度変化の検出の期待値を示す図。
【図８】標準制御とマイクロ制御との切換えを示すフローチャート。
【図９】本サーボ装置を適用し得る多関節ロボットを示す概略図。
【発明を実施するための形態】
【００１５】
以下、本発明に係る実施の形態を図１乃至図９に沿って説明する。まず、本発明に係るサーボ装置を適用し得る多関節ロボットについて図９に沿って説明する。
【００１６】
図９に示すように、多関節ロボット１００は、基台１５０に設置された６軸関節のロボットアーム１０１と、ロボットアーム１０１の先端に取付け（把持）された作業ツール（エンドエフェクタ）１０２とを有して構成されている。６軸関節のロボットアーム１０１における各関節軸Ｊ１〜Ｊ６には、詳しくは後述するサーボ装置１が組み込まれる。作業ツール１０２は、例えばワーク等に対して所望の作業を施すツールであり、例えばワーク等を撮像するカメラ（不図示）が固定支持されている。
【００１７】
多関節ロボット１００は、ティーチングペンダント等の軌道や速度を教示する手段によって教示された教示点に基づき、不図示の制御装置によって各関節軸Ｊ１〜Ｊ６の角度位置が駆動制御される。即ち、不図示の制御装置から各関節に組み込まれた詳しくは後述するサーボ装置１の制御部１０に対して、指示角度の信号が与えられる。また、カメラで撮像されたワーク等の画像は不図示の制御装置に送信され、所定の画像処理等によってワーク等の位置姿勢が算出される。不図示の制御装置は、算出したワーク等の位置姿勢に基づき、作業ツール１０２が作業に適した位置となるように、各関節軸Ｊ１〜Ｊ６の角度位置を微調整するように各サーボ装置１に指示角度の信号を与えることになる。なお、本実施の形態においては、各関節軸Ｊ１〜Ｊ６にサーボ装置１が組み込まれているものとして説明するが、各関節軸Ｊ１〜Ｊ６の少なくとも１箇所にサーボ装置１が組み込まれていれば、後述のマイクロ制御は実行可能である。
【００１８】
続いて、上記サーボ装置１の一例を図１に沿って説明する。サーボ装置１は、大まかに、モータ１４と、減速機７と、ポテンショメータ６と、制御部１０とを備えて構成されている。減速機７は、８個のギヤから構成され、モータ１４の回転速度を減速して出力軸ギヤ３に伝達し、出力軸ギヤ３に連結された出力軸１Ａから回転を出力する。出力軸１Ａは、ベアリング２，４によってサーボ筐体に回転自在に支持されていると共に連結軸５に連結されている。つまり出力軸１Ａ及び連結軸５は、モータの回転出力により回転すると共に、ポテンショメータ６に接続されている。
【００１９】
図２に示すように、ポテンショメータ（軸角度検出部）６は、連結軸５の外周に配置された抵抗体１９と、抵抗体１９のさらに外周に配置された抵抗体１８とを有している。また、連結軸５には支持板２３，２４が連結されて、それら支持板２３，２４には導体２２が支持されている。導体２２は、摺動部２０が抵抗体１８に摺動自在に接触しており、摺動部２１が抵抗体１９に摺動自在に接触している。そして、抵抗体１８には基準電圧端子１６，１７が接続されており、抵抗体１９には軸角度検出端子１５が接続されている。
【００２０】
従って、ポテンショメータ６は、連結軸５が回転すると、摺動部２０，２１がそれぞれ抵抗体１８，１９に対して摺動しつつ回転する。すると、基準電圧端子１６，１７により基準電圧が印加された抵抗体１８から、導体２２を介して抵抗体１９の電圧値がアナログ的に変動し、回転変化が軸角度検出端子（検出器）１５から信号線８にアナログ値として出力される。
【００２１】
制御部１０は、詳しくは後述する分数倍駆動指令部１１と、コントローラ部１２と、ドライバ部１３とを有して構成されている。また、制御部１０は、ＲＳ４８５等のシリアル通信の規格で支持角度の信号を入力する入力端子に接続された信号線９に接続されていると共に、モータ１４に駆動指令を送信自在となるように接続されている。
【００２２】
上記制御部１０は、モータ１４をポテンショメータ６の検出結果に基づきフィードバック制御しつつトルク制御方式で駆動制御する標準制御と、本発明に係るマイクロ制御とを実行可能である。ここで、まず、標準制御のときのサーボ装置１の動作を説明する。なお、本実施の形態においては、ポテンショメータ６のＡＤ変換後のデジタル値で検出できる軸角度位置の分解能に対し、その軸角度分解能（所定角度単位）Δの整数倍でサーボ装置１の出力軸１Ａを駆動制御する場合を標準制御という。また、その軸角度分解能Δの分数倍（つまりポテンショメータ６の分解能よりも微小）でサーボ装置１の出力軸１Ａを駆動制御する場合をマイクロ制御という。
【００２３】
標準制御において、制御部１０のコントローラ部１２には、例えば多関節ロボット１００の制御装置で演算された指示角度θｄの信号が信号線９から入力され、また、ポテンショメータ６の軸角度検出端子１５から上述のアナログ値が入力される。コントローラ部１２は、軸角度検出端子１５から入力されたアナログ値を１２ビットでＡＤ変化して所定角度単位となるデジタル値を生成する。この際、コントローラ部１２は、所定回数のＡＤ変換したデジタル値を平均した平均値を算出し、出力軸１Ａの軸角度データとして、揺らぎのない軸角度分解能Δ（つまり所定角度単位）の軸角度θｐを算出する。そして、入力された指示角度θｄとポテンショメータ６で検出した軸角度θｐとの角度差分（θｐ−θｄ）から、モータ１４の出力トルクを演算し、ドライバ部１３に送信する。ドライバ部１３は、コントローラ部１２で演算されたモータ１４の出力トルクに基づき、ポテンショメータ６の軸角度分解能Δの整数倍駆動指令をモータ１４に与えることで、つまりモータ１４をトルク制御方式で駆動制御することができる。
【００２４】
ここで、トルク制御方式について図３に沿って詳細に説明する。図３において、横軸は指示角度θｄに対する軸角度θｐの角度差分（θｐ−θｄ）を示し、縦軸は角度差分（θｐ−θｄ）に対する出力軸１Ａに加わる出力トルクを示す。角度差分及び出力トルクの方向は、時計回りをＣＷで、反時計回りをＣＣＷで示す。本サーボ装置１では、角度差分（θｐ−θｄ）が値ｓ１，ｓ２において出力トルクは各々Ｔ１，Ｔ２でトルクリミットされる。
【００２５】
例えば出力軸１ＡにＣＷ方向のトルクＴが加わっている場合、角度差分（θｐ−θｄ）がＣＷ方向に発生して、ＣＣＷ方向にトルクＴが発生する軸角度で平衡することになる。本サーボ装置１は、外力に比例して変位が比例している「バネ特性」を示すことから、弾性制御型サーボとも呼ばれる。トルクＴ１，Ｔ２は最大トルクであるので、直線の傾きである「バネ定数」は、一般に値ｓ１，ｓ２によって決定する。値ｓ１，ｓ２及び軸角度移動時間ｔｍは、指示角度θｄと同じシリアル信号で便宜的に設定できる。
【００２６】
本サーボ装置１の標準制御では、軸角度移動時間ｔｍより短いトルク制御間隔ｔ０を単位としてトルク制御が実行される。このため制御タイミングにおけるコントローラ部１２で実際に使用される指示角度は、補間した指示角度を使用する。このため、軸角度移動時間ｔｍを短くすると、瞬時トルクはトルクＴから離れたトルクＴａ，Ｔｄの範囲までトルク発生させて素早くトルクＴに収束させることになる。反対に、軸角度移動時間ｔｍを長くすると、トルクＴの近傍のトルクＴｂ〜Ｔｃの範囲でトルクＴに収束させることができる。
【００２７】
なお、このトルク制御方式でサーボ装置１を制御する多関節ロボット１００では、外力によって各関節は指示角度と等しくならない。そのため、作業ツール１０２の位置や姿勢は、例えばカメラによってワーク等を含んだ画像から認識し、多関節ロボット１００の制御装置で各サーボ装置１に対する指示角度を修正することで、所望の位置や姿勢に移動することができる。このようなトルク制御のサーボ装置を組込んだ多関節ロボット１００では、ステッピングモータ等を用いた位置制御型サーボを使用した場合に比して、外部要因（例えばワークの重量変化等）に柔軟に対応できるロボット制御が実現できる。
【００２８】
続いて、本発明に係るマイクロ制御について説明する。なお、本実施の形態では、分数倍するための配列数をＮ＝８とし、つまり軸角度分解能Δ（つまり所定角度単位）のｘ／８（ｘは整数）でマイクロ制御するものを説明する。
【００２９】
図４に示すように、制御部１０がマイクロ制御を開始すると、ステップＳ１−１に進み、コントローラ部１２におけるトルク制御設定を行う。トルク制御設定においては、まず、「バネ定数」を決定する値ｓ１，ｓ２と軸角度移動時間ｔｍを設定する。値ｓ１，ｓ２は、マイクロ制御における感度を向上させるため、標準制御より「０」に近い値（小さい値）にすることが望ましい。また、トルク制御設定では、マイクロ制御間隔ｔμも設定する。マイクロ制御間隔ｔμは、サーボ装置１のトルク制御間隔ｔｏと等しい間隔又は大きな間隔に設定する。
【００３０】
次にステップＳ１−２に進むと、マイクロ制御における軸角度移動条件として、開始角度ｄ０、移動角度量ｄ１、軸角度滞留回数ｄ２を設定する。開始角度ｄ０は軸角度分解能Δより細かい分数値（ｘ／８、但しｘは０〜７）を含む角度情報であり、移動角度量ｄ１は分数値（１／８ごと）の数である。なお、ＣＷ方向は正数とし、ＣＣＷ方向は負数とすれば、移動方向も設定できる。軸角度滞留回数ｄ２によって、マイクロ制御における軸角度滞留時間が設定されるので、軸角度移動速度が設定できる。
【００３１】
ステップＳ１−３に進むと、制御部１０の分数倍駆動指令部１１は、開始角度ｄ０を軸角度分解能Δごとに配列された分数倍駆動指令ｄ［８：１］に生成する。分数倍駆動指令ｄ［８：１］の一例を図５に示す。「ｎ」は配列番号で、「ａ」〜「ｈ」は軸角度分解能Δに対する分数倍ごと（０／８〜７／８）となるモータ１４に対する駆動指令パターンである。
【００３２】
図５に示す分数倍駆動指令値を、縦軸を角度指令とし、横軸を時間として図６に示す。図６に示すように、マイクロ制御におけるトルク制御間隔ｔ０における分数倍ごとの駆動指令パターン（所定パターン）は、その平均値θａｖｅを挟んで所定周期で振幅するように配列される。「ａ」〜「ｈ」の駆動指令値パターンは、その微小な振幅により、それぞれ分数倍（０／８〜７／８倍）となる平均値θａｖｅを有する。図５及び図６に示す「ａ」〜「ｈ」の駆動指令値パターンは、変動振幅や近接分数値において変化量を極力抑えた例であり、かつ振幅変動を分散させ振幅変動に含まれる周波数成分をできるだけ高くした例である。なお、「ａ」〜「ｈ」の駆動指令値パターンは、この配列に限定するものではなく、振幅幅も「Δ」や「２Δ」に限定するものではない。
【００３３】
ステップＳ１−４〜Ｓ１−８では、開始角度ｄ０に対して例えば図５に示す分数倍駆動指令値の「ａ」〜「ｈ」の駆動指令値パターンによる角度指令ｄ［ｉ］を順にモータ１４に付与し、その都度、ポテンショメータ６から軸角度θｐ［ｉ］を検出・保存する。例えばステップＳ１−４でｉ＝１を設定し、ステップＳ１−５で角度指令ｄ［１］をモータ１４に与えてからマイクロ制御間隔ｔμ後に、ステップＳ１−６で軸角度θｐ［１］を検出して保存する。そして、この動作をステップＳ１−７及びステップＳ１−８を経由してｉ＝Ｎ（本実施の形態ではＮ＝８）となるまで繰り返す。なお、後述する軸角度期待値配列を生成するためには、上述した軸角度θｐ［ｉ］の検出・保存の動作（ステップＳ１−４〜Ｓ１−８）を分数の分割数Ｎ（本実施の形態では８回）以上行う必要がある。これによりマイクロ制御時の開始角度ｄ０における揺らぎを含む軸角度θｐの状態を知ることができる。
【００３４】
以上の過程において、マイクロ制御間隔ｔμを軸角度移動時間ｔｍより小さくすれば、実際の角度指令は補間された角度になり、小さな微細なトルク発生となって、軸角度は軸角度分解能Δより十分小さな振動になる。軸角度の振動状態は「バネ定数」を決定する値ｓ１，ｓ２でも設定できる。
【００３５】
ついで、ステップＳ１−９に進むと、開始角度ｄ０に対して求めた軸角度θｐ［ｉ］の平均値となる軸角度期待値配列ｐ［８：１］を求める。なお、軸角度期待値配列ｐ［Ｎ：１］は、マイクロ制御の実行中にポテンショメータ６が軸の角度変化Δを検出する回数に関する配列が駆動指令値パターン（つまり分数倍）ごとに記録された配列である。
【００３６】
詳細には、本実施の形態では、上記保存した軸角度θｐ［ｉ］のうち、最小値θ１、最大値θ１＋Δ、及び最小値θ１における「＋Δ」の数を求める。そして、軸角度の最大値θ１＋Δに対応して分数倍ごとに軸角度期待値配列ｐ［８：１］を生成する。
【００３７】
図７に示すように、軸角度期待値配列ｐ［８：１］において、「ｎ」は配列番号であり、「ａ」〜「ｈ」は最大値θ１＋Δにおける「＋Δ」の数に対応したものである。本実施の形態では、説明を簡素化するために、図７に示す軸角度期待値配列の「ａ」〜「ｈ」は、図５及び図６の駆動指令値パターンの「ａ」〜「ｈ」に対して変化する配列要素と同じにしている。
【００３８】
このため、分数倍駆動指令ｄ［８：１］の角度指令変動に呼応する軸角度変動に対し、後述のマイクロ制御におけるモータ１４の駆動角度が追従し易くなる。
【００３９】
なお、ポテンショメータ６による軸角度検出は、上記標準制御ではアナログ値を所定回数のＡＤ変換の平均値を軸角度のデジタル値とすることで、揺らぎのない軸角度分解能Δの軸角度θｐを得ている。しかし。本マイクロ制御では、軸角度期待値配列ｐ［Ｎ：１］との比較動作が平均値処理に相当するので、デジタル値の平均値処理を無くす、又は平均化する回数低減を行うことが望ましい。これにより、軸角度θｐの検出時間を短くすることが可能になり、トルク制御間隔ｔｏを短くできるため、マイクロ制御間隔ｔμを短くできる。
【００４０】
以上のようにマイクロ制御における各種の設定が準備段階として終了すると、ステップＳ１−１０及びＳ１−１１に進む。ステップＳ１−１０では、指示角度を軸角度移動量ｄ１の正／負を考慮して、「ｋ」の正／負を設定する。ここでは、まずｋ＝１に設定する。ステップＳ１−１１では、軸角度の１／８の分数倍だけ変化させた値となるように、ｄ０＋ｋ／８（負の場合はｄ０−ｋ／０）を設定する。
【００４１】
次にステップＳ１−１２では、指示角度ｄ０＋ｋ／８（負の場合はｄ０−ｋ／８）に対して、図５及び図６に示す分数倍駆動指令ｄ［８：１］を用いて、分数倍駆動指令の駆動指令パターンである角度指令ｄｄ＝ｄ［１］を更新する。なお、現在の指示角度が軸角度分解能Δの７／８の位置（ｈ）であって、指示角度ｄ０＋ｋ／８によって軸角度を８／８に増加させる場合は、駆動指令パターンの「ａ」の各要素に「＋Δ」を加算して、それを角度指令として用いる。反対に、現在の指示角度が軸角度分解能Δの０／８の位置（ａ）であって、指示角度ｄ０−ｋ／８によって軸角度を７／８に減少させる場合は、駆動指令パターンの「ｈ」の各要素に「−Δ」を加算して、それを角度指令として用いる。
【００４２】
続いてステップＳ１−１３では、指示角度ｄ０＋ｋ／８（負の場合はｄ０−ｋ／０）に対して、図７に示す軸角度期待値配列ｐ［８：１］を用いて、軸角度期待値を更新する。なお、現在の軸角度期待値配列が軸角度分解能Δの７／８の位置（ｈ）であって、指示角度ｄ０＋ｋ／８によって軸角度を８／８に増加させる場合は、軸角度期待値配列の「ａ」の各要素に「＋Δ」を加算して、それを軸角度期待値として用いる。反対に、現在の軸角度期待値配列が軸角度分解能Δの０／８の位置（ａ）であって、指示角度ｄ０−ｋ／８によって軸角度を７／８に減少させる場合は、軸角度期待値配列の「ｈ」の各要素に「−Δ」を加算して、それを軸角度期待値として用いる。
【００４３】
そして、ステップＳ１−１４〜Ｓ１−２５では、実際にモータ１４を分数倍駆動指令ｄｄで駆動し、上記ステップＳ１−１３で設定した軸角度期待値配列となるように軸角度θｐを検出しながら分数倍駆動指令ｄｄを随時更新して、出力軸１Ａを駆動制御する。
【００４４】
即ち、まず、ステップＳ１−１４でｊ＝１、ステップＳ１−１５でｉ＝１を設定する。ステップＳ１−１６で、実際にモータ１４に上記ステップＳ１−１２で設定した分数倍駆動指令ｄｄ（ここではｄ［１］）を与え、出力軸１Ａを駆動制御する。次に、マイクロ制御間隔ｔμ後にステップＳ１−１７において、ポテンショメータ６によって軸角度θｐを検出する。そして、次回の分数倍駆動指令ｄｄを、次の分数倍駆動指令ｄ［２］から、軸角度θｐと軸角度期待値配列ｐ［１］との差分を減算して求めて設定する。
【００４５】
以降は、ステップＳ１−１９及びステップＳ１−２０を経由して、ｉ＝８となるまで上記のように随時更新される分数倍駆動指令ｄｄでモータ１４を駆動制御する。従って、軸角度θｐが軸角度期待値配列ｐ［ｉ］に対して異なれば、軸角度θｐのずれを補正するように次の分数倍駆動指令ｄｄは修正される。
【００４６】
以上のステップＳ１−１６〜Ｓ１−２０の動作を、ステップＳ１−２１及びＳ１−２２を経由して、値ｊが軸角度滞留回数ｄ２となるまで繰り返す。この動作において、分数倍駆動指令の平均値が指示角度の分数値になるとは限らないが、軸角度θｐの平均値は軸角度期待値配列ｐ［Ｎ：１］の平均値に近き、つまり軸角度θｐの移動角度がポテンショメータ６の軸角度分解能Δの分数倍（ｘ／８）に漸近する。これにより、駆動指令された軸角度の分数移動量が実現されたことになる。
【００４７】
そして、値ｊが軸角度滞留回数ｄ２になると、ステップＳ１−２３及びＳ１−２４を経由して、上記値ｋが移動角度量ｄ１になるまで１加算（ｋ＝ｋ＋１）又は１減算（ｋ＝ｋ−１）し、指示角度ｄ０＋ｄ１／Ｎとなるまで繰り返す。ポテンショメータ６で検出される出力軸１Ａの移動量が軸角度移動量ｄ１になると、ステップＳ１−２５において分数倍駆動指令ｄ［８：１］及び軸角度期待値配列ｐ［８：１］を変更することなく軸角度移動時間ｔｍが経過するまで待機する。つまり軸角度θｐが初期角度からｄ１×（Δ／８）の分だけ移動した軸角度θｐに漸近するように制御され、その状態で保持され、軸角度移動時間ｔｍが経過すると、本マイクロ制御を終了する。
【００４８】
以上説明した本マイクロ制御による軸角度の駆動制御によれば、軸角度θｐはポテンショメータ６の軸角度分解能Δの分数倍（１／８程度）の軸角度分解能で軸角度移動及び軸角度保持できる。また、分数倍駆動指令ｄ［Ｎ：１］の配列数Ｎを増やせば、更に細かい軸角度の駆動制御が可能になり、さらに軸角度駆動の分解能の向上が実現される。
【００４９】
なお、本実施の形態では、分数倍駆動指令部１１を制御部１０に組み込んだものを説明したが、分数倍駆動指令部１１は、サーボ装置１と一体である必要はないので、従来のサーボ装置に対して、サーボ装置の制御方法として機能させることができる。分数倍駆動指令部１１をサーボ装置１に一体に組み込んだ場合は、開始角度ｄ０、軸角度移動量ｄ１、軸角度滞留回数ｄ２をサーボ装置１の制御部１０に送信すれば、マイクロ制御が簡単に実行できる。
【００５０】
また、ポテンショメータ６の軸角度分解能Δで決定される指示角度データが１２ビット場合、一般的にサーボ装置１に指示角度は２ｂｙｔｅ（１６ビット）で送信される。本発明を適用したサーボ装置１では、分数倍駆動指令ｄ［Ｎ：１］の配列数Ｎ＝８にした場合、指示角度の分数値として３ビット、マイクロ制御と標準制御の切り換えに１ビットを割り与える。この場合、指示角度の総ビット数は一般的なサーボ装置と同じく１６ビットになり、マイクロ制御／標準制御の切り換えも可能になる。分数倍駆動指令ｄ［Ｎ：１］及び軸角度期待値配列ｐ［Ｎ：１］を含めて、本マイクロ制御では全てソフト処理が可能なので、サーボ装置１に一体として組み込むためのコスト増加は殆んどない。
【００５１】
ついで、上記マイクロ制御と標準制御を組合せて多関節ロボット１００を制御する場合について、図８に沿って説明する。マイクロ制御は上述したように複数回の軸角度制御に出力軸１Ａを微小駆動するため、軸角度移動速度は標準制御に対して遅くなる。従って、多関節ロボット１００の動作を行う各関節の軸角度駆動動作は、標準制御とマイクロ制御とを切換えて使用することが望ましい。以下、標準制御とマイクロ制御との切換えについて説明する。
【００５２】
図８に示すように、ステップＳ２−１において、多関節ロボット１００の制御装置から、作業ツール１０２の所定部位の位置姿勢を、例えば作業開始条件の近傍の位置姿勢Ｐ０として標準制御で指令する。この場合は、各関節のサーボ装置１は、標準制御で位置姿勢Ｐ０に対応した軸角度駆動を行い、作業ツール１０２の所定部位は位置姿勢Ｐ０の近傍に移動する。
【００５３】
ステップＳ２−２において、作業ツール１０２の所定部位の位置姿勢を作業開始条件の位置姿勢Ｐ１となるようにマイクロ制御で指令する。これにより、各関節のサーボ装置１は、マイクロ制御で位置姿勢Ｐ１に対応した軸角度駆動を行う。次にステップＳ２−３において、作業ツール１０２の所定部位やワーク等の対象物（不図示）の所定位置を、本多関節ロボット１００の先端又は他の多関節ロボットに組込まれたカメラで確認する。ステップＳ２−４において、作業開始条件に満たされなければ、ステップＳ２−５で確認結果に基づき位置姿勢Ｐ１を修正して、作業ツール１０２の所定部位の位置姿勢を作業開始条件を満たすようにする。使用するサーボ装置１はトルク制御（弾性制御）方式なので、所望角度と軸角度θｐの平均値との差で各サーボ装置１に加わる外力及び外力方向が認識できる力センサになるので、確認手段として使用できる。なお、力センサとしてサーボ装置１を用いた位置姿勢Ｐ１の修正動作は、必ずしも必須ではなく、カメラ等の画像認識からの修正動作だけでもよい。
【００５４】
マイクロ制御により作業ツール１０２の対象物に対する位置姿勢が良好となると、ステップＳ２−６に進み、作業ツール１０２で所望の作業を対象物に対して実行する。このときに、多関節ロボット１００のロボットアーム１０１を駆動する場合は、各サーボ装置１の制御方法がマイクロ制御であっても標準制御であってもよい。
【００５５】
作業ツール１０２による作業が終了すると、ステップＳ２−７に進み、作業ツール１０２の所定部位の位置姿勢を作業待機条件等の位置姿勢Ｐ２として、再度、標準制御で指令する。各関節のサーボ装置１は標準制御で位置姿勢Ｐ２に対応した軸角度駆動を行い、作業ツール１０２の所定部位は位置姿勢Ｐ２に移動する。
【００５６】
以上説明した多関節ロボット１００の動作手順では、各サーボ装置１が微小な軸角度駆動動作を行う場合にマイクロ制御を使用するので、作業全体として、標準制御で俊敏性が得られ、かつマイクロ制御で繊細なロボット動作を実現できる。
【００５７】
なお、以上説明した本実施の形態においては、軸角度検出部としてポテンショメータ６を用いたものを説明したが、これに限らず、レゾルバやロータリエンコーダなど、出力軸１Ａの軸角度が検出できるものであれば、軸角度検出部は何でもよい。レゾルバやロータリエンコーダ等を軸角度検出部として用いた場合でも、本マイクロ制御では、軸角度検出の分解能の分数倍でサーボ装置１を制御できることは言うまでもない。
【符号の説明】
【００５８】
１…サーボ装置：６…軸角度検出部（ポテンショメータ）：１０…制御部：１４…モータ：１５…検出器（軸角度検出端子）：１００…多関節ロボット：ｄ［Ｎ：１］…分数倍駆動指令：ｐ［Ｎ：１］…期待値配列：Δ…所定角度単位（軸角度分解能）
【図１】
2015033277.tif 000003
【図２】
2015033277.tif 000004
【図３】
2015033277.tif 000005
【図４】
2015033277.tif 000006
【図５】
2015033277.tif 000007
【図６】
2015033277.tif 000008
【図７】
2015033277.tif 000009
【図８】
2015033277.tif 000010
【図９】
2015033277.tif 000011