(57)【要約】【課題】マスタ装置の軸数がスレーブ装置の軸数よりも少ない場合に、一定周期でマスタ装置とスレーブ装置とを同期させて制御する制御装置であって、計算量を削減できるものを提供すること。【解決手段】演算部３０は、一定周期でマスタ装置１０１の各軸への指令値ＣＶｍまたは各軸の測定された現在値ＣＶｍ′に対して、マスタ装置１０１の位置とスレーブ装置１０２の位置とを予め定められた対応関係に保つための同期演算を行う同期演算部３１と、この同期演算によって得られた同期演算結果値に対してマスタ装置１０１の座標系からスレーブ装置１０２の座標系への座標変換を行う座標変換部３２とを備える。これによって、スレーブ装置１０２の各軸への指令値ＣＶｎを求める。【選択図】図１
2019155521.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置の軸数がスレーブ装置の軸数よりも少ない場合に、一定周期で上記マスタ装置と上記スレーブ装置とを同期させて制御する制御装置であって、
上記一定周期で、上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて、上記スレーブ装置の各軸への指令値を演算によって求める演算部を備え、
上記演算部は、
上記一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを予め定められた対応関係に保つための同期演算を行う同期演算部と、
この同期演算によって得られた同期演算結果値に対して上記マスタ装置の座標系から上記スレーブ装置の座標系への座標変換を行う座標変換部と
を備えたことを特徴とする制御装置。
【請求項２】
マスタ装置の軸数がスレーブ装置の軸数よりも少ない場合に、一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて上記スレーブ装置の各軸への指令値を演算によって求めて、上記マスタ装置と上記スレーブ装置とを同期させて制御する制御方法であって、
上記一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを予め定められた対応関係に保つための同期演算を行った後、
この同期演算によって得られた同期演算結果値に対して上記マスタ装置の座標系から上記スレーブ装置の座標系への座標変換を行う
ことを特徴とする制御方法。
【請求項３】
請求項２に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は制御装置に関し、より詳しくは、マスタ装置とスレーブ装置とを同期させて制御する制御装置に関する。また、この発明は、そのような制御を行う制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、この種の制御装置としては、例えば特許文献１（特開平６−１３８９２０号公報）に開示されているように、マスタ装置（協調基準体）とスレーブ装置（制御対象体）とを協調動作させるために、スレーブ装置への位置指令値に対して、同期データを補正量（補正同期データ）として加算する方式のものが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−１３８９２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来例とは異なり、本出願人は、一定周期（例えば、０．５ｍｓｅｃ〜１ｍｓｅｃ程度の周期）で、マスタ装置の各軸（本明細書を通して「制御軸」を意味する。）への指令値（または各軸の測定された現在値）に基づいてスレーブ装置の各軸への指令値を演算によって求めて、マスタ装置とスレーブ装置とを同期させて制御する方式を開発している。これにより、マスタ装置とスレーブ装置とを精度良く同期させることができる。
【０００５】
このように一定周期でマスタ装置とスレーブ装置とを同期させて制御する場合、演算する軸数に比例して、マスタ装置の位置とスレーブ装置の位置とを予め定められた対応関係に保つ同期演算（例えば、マスタ装置の位置に対して予め定められた関数の変換を行う演算）のための計算量が増大する。また、マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合、マスタ装置の各軸への指令値（または各軸の測定された現在値）からスレーブ装置の各軸への指令値を求める過程で、マスタ装置の座標系からスレーブ装置の座標系への座標変換を行う必要もある。このため、計算量を削減することが求められる。
【０００６】
そこで、この発明の課題は、一定周期でマスタ装置とスレーブ装置とを同期させて制御する制御装置であって、計算量を削減できるものを提供することにある。また、この発明の課題は、そのような制御装置のための制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、この開示の制御装置は、
マスタ装置の軸数がスレーブ装置の軸数よりも少ない場合に、一定周期で上記マスタ装置と上記スレーブ装置とを同期させて制御する制御装置であって、
上記一定周期で、上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて、上記スレーブ装置の各軸への指令値を演算によって求める演算部を備え、
上記演算部は、
上記一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを予め定められた対応関係に保つための同期演算を行う同期演算部と、
この同期演算によって得られた同期演算結果値に対して上記マスタ装置の座標系から上記スレーブ装置の座標系への座標変換を行う座標変換部と
を備えたことを特徴とする。
【０００８】
本明細書で、マスタ装置、スレーブ装置の「軸」とは、それぞれ制御軸を意味する。マスタ装置、スレーブ装置としては、例えばベルトコンベアのような１軸の装置、Ｘ−Ｙテーブルのような２軸の装置、４軸水平多関節ロボットのような４軸の装置、６軸多関節ロボットのような６軸の装置など、様々な軸数の装置が対象となり得る。ただし、この発明は、マスタ装置の軸数がスレーブ装置の軸数よりも少ない場合に適用される。
【０００９】
「同期演算」とは、上記一定周期で行われ、上記マスタ装置の位置と上記スレーブ装置の位置とを予め定められた対応関係に保つ演算を意味する。「予め定められた対応関係」とは、例えば、マスタ装置の位置の変化に対して、スレーブ装置の位置が予め定められた関係（例えば、カム曲線を表す関数）に従って変化（加速または減速を含む。）するような関係を指す。上記マスタ装置、上記スレーブ装置の「位置」とは、並進成分および／または回転成分を含む意味である。
【００１０】
「座標変換」とは、上記マスタ装置の座標系（例えば、ＸＹＺ座標系とする。）を基準とした位置から上記スレーブ装置の座標系（例えば、ｘｙｚ座標系とする。）を基準とした位置への変換を指す。例えば、上記マスタ装置の位置（または上記同期演算結果値）の変化が上記スレーブ装置のｘｙｚ座標系で斜めのベクトル（ｘ，ｙ，ｚ成分がいずれもゼロでない）に相当する場合、「座標変換」とは、そのベクトルの射影（ｘ，ｙ，ｚ成分）を求めることに相当する。
【００１１】
この開示の制御装置では、演算部は、一定周期で、上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて、上記スレーブ装置の各軸への指令値を演算によって求める。この過程で、上記演算部の同期演算部は、まず、一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを予め定められた対応関係に保つための同期演算を行う。この後、上記演算部の座標変換部は、この同期演算によって得られた同期演算結果値に対して上記マスタ装置の座標系から上記スレーブ装置の座標系への座標変換を行う。これによって、上記スレーブ装置の各軸への指令値が求められる。この座標変換は、例えば、上記同期演算結果値の変化が上記スレーブ装置の座標系（例えば、ｘｙｚ座標系とする。）で斜めのベクトル（ｘ，ｙ，ｚ成分がいずれもゼロでない）に相当する場合、そのベクトルの射影（ｘ，ｙ，ｚ成分）を求めることに相当する。したがって、上記スレーブ装置の軸数が比較的多くても、計算が比較的簡単で済む。したがって、この制御装置によれば、上記マスタ装置の各軸への指令値（または各軸の測定された現在値）から上記スレーブ装置の各軸への指令値を求める過程で、計算量を削減できる。
【００１２】
別の局面では、この開示の制御方法は、
マスタ装置の軸数がスレーブ装置の軸数よりも少ない場合に、一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて上記スレーブ装置の各軸への指令値を演算によって求めて、上記マスタ装置と上記スレーブ装置とを同期させて制御する制御方法であって、
上記一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを予め定められた対応関係に保つための同期演算を行った後、
この同期演算によって得られた同期演算結果値に対して上記マスタ装置の座標系から上記スレーブ装置の座標系への座標変換を行う
ことを特徴とする。
【００１３】
この開示の制御方法によれば、上記マスタ装置の各軸への指令値（または各軸の測定された現在値）から上記スレーブ装置の各軸への指令値を求める過程で、計算量を削減できる。
【００１４】
さらに別の局面では、この開示のプログラムは、上記制御方法をコンピュータに実行させるためのプログラムである。
【００１５】
この開示のプログラムをコンピュータに実行させることによって、上記制御方法を実施することができる。
【発明の効果】
【００１６】
以上より明らかなように、この開示の制御装置、制御方法およびプログラムによれば、マスタ装置の各軸への指令値（または各軸の測定された現在値）からスレーブ装置の各軸への指令値を求める過程で、計算量を削減できる。
【図面の簡単な説明】
【００１７】
【図１】この発明の一実施形態の制御装置を或る制御システムに適用したときのブロック構成を示す図である。
【図２】上記制御システムの外観を模式的に示す図である。
【図３】この発明の一実施形態の制御方法による動作例として、上記制御システムにおける上記制御装置の中央演算部による動作を説明する図である。
【発明を実施するための形態】
【００１８】
以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。
【００１９】
図１は、この発明の一実施形態の制御装置１０を或る制御システム１００に適用したときのブロック構成を示している。また、図２は、制御システム１００の外観を模式的に示している。これらの図に示すように、この制御システム１００は、大別して、１軸のベルトコンベアであるマスタ装置１０１と、６軸のロボットであるスレーブ装置１０２と、これらのマスタ装置１０１とスレーブ装置１０２とを一定周期ｔ（例えば、ｔ＝０．５ｍｓｅｃ〜１ｍｓｅｃ程度の周期）で同期させて制御する制御装置１０とを備えている。
【００２０】
図２に示すように、マスタ装置１０１は、この例では、制御装置１０からの指令値ＣＶｍに応じてベルト１０１ＡをＸ軸方向に駆動するモータ１１１と、このモータ１１１と一体に構成され、モータ１１１の現在値（現在位置）ＣＶｍ′を測定するエンコーダ１１２と、制御装置１０からの指令値ＣＶｍおよびエンコーダ１１２からの現在値ＣＶｍ′を表す信号に基づいてモータ１１１を駆動するサーボアンプ１１３とを含んでいる。ベルト１０１Ａ上の作業対象物（以下「ワーク」と呼ぶ。）９０は、矢印Ａで示すように、Ｘ軸方向に移動される。
【００２１】
スレーブ装置１０２は、この例では、６軸多関節ロボット１２１と、制御装置１０からの指令値ＣＶｎを表す信号に応じてロボット１２１を駆動するロボットアンプ１２２とを含んでいる。
【００２２】
この例では、マスタ装置１０１は、１軸（Ｘ軸）の自由度を有している。スレーブ装置１０２は、６軸ｘ，ｙ，ｚ，ｙａｗ，ｐｉｔｃｈ，ｒｏｌｌの自由度を有している。すなわち、マスタ装置１０１の軸数ｍ（この例では、ｍ＝１）がスレーブ装置１０２の軸数ｎ（この例では、ｎ＝６）よりも少なく、ｍ＜ｎになっている。また、この例では、マスタ装置１０１のＸ軸は、スレーブ装置１０２のｘ，ｙ，ｚ軸のいずれとも一致していない。したがって、マスタ装置１０１の位置Ｘ（または、後述の同期演算結果値）の変化がスレーブ装置１０２のｘｙｚ座標系で斜めのベクトル（ｘ，ｙ，ｚ成分がいずれもゼロでない）に相当する。
【００２３】
図１に示すように、制御装置１０は、ユーザによって指定されたプログラムを実行するプログラム実行部５０と、マスタ装置指令値演算部２０と、中央演算部３０と、スレーブ装置指令値演算部４０とを備えている。この例では、マスタ装置指令値演算部２０、中央演算部３０、およびスレーブ装置指令値演算部４０が、演算部を構成している。
【００２４】
マスタ装置指令値演算部２０は、プログラム実行部５０からの指示を受けて、或る軸数ｍ（この例では、ｍ＝１）のマスタ装置１０１を制御するために、その軸数ｍと同数ｍの要素からなる、マスタ装置１０１への指令値（マスタ装置指令値）ＣＶｍを演算して作成する。このマスタ装置指令値ＣＶｍを表す信号は、マスタ装置１０１へ送信される。マスタ装置１０１のサーボアンプ１１３は、各軸（この例では、Ｘ軸）のマスタ装置指令値ＣＶｍを、エンコーダ１１２からの現在値ＣＶｍ′を反映して一定周期ｔで更新して、モータ１１１を駆動する。現在値ＣＶｍ′は、マスタ装置指令値演算部２０へ送信される。これにより、制御装置１０（特に、マスタ装置指令値演算部２０）によって、マスタ装置１０１が制御される。
【００２５】
スレーブ装置指令値演算部４０は、図示しない同期命令部からの指示を受けて、或る軸数ｎ（この例では、ｎ＝６）のスレーブ装置１０２を制御するために、後述の同期演算結果値に基づいて、その軸数ｎと同数ｎの要素からなる、スレーブ装置１０２への指令値（スレーブ装置指令値）ＣＶｎを演算して作成する。このスレーブ装置指令値ＣＶｎを表す信号は、スレーブ装置１０２へ送信される。スレーブ装置１０２のロボットアンプ１２２は、各軸のスレーブ装置指令値ＣＶｎを、ロボット１２１からの各軸の現在値ＣＶｎ′を反映して一定周期ｔで更新して、ロボット１２１を駆動する。現在値ＣＶｎ′は、スレーブ装置指令値演算部４０へ送信される。これにより、制御装置１０（特に、スレーブ装置指令値演算部４０）によって、スレーブ装置１０２が制御される。
【００２６】
中央演算部３０は、同期演算部３１と、座標変換部３２とを含んでいる。次に、一実施形態の制御方法の動作例として、制御システム１００における、この制御装置１０（特に、中央演算部３０）の動作について説明する。
【００２７】
同期演算部３１は、一定周期ｔでマスタ装置１０１の各軸（この例では、Ｘ軸）への指令値ＣＶｍ（または、各軸の測定された現在値ＣＶｍ′でもよい。）に対して、マスタ装置１０１の位置とスレーブ装置１０２の位置とを予め定められた対応関係に保つための同期演算（これを符号Ｓ１で表す。）を行う。
【００２８】
例えば、図３（Ａ）に示すように、マスタ装置１０１の位置（Ｘ軸位置）１０１Ｘが時間経過に伴ってリニアに増加しているものとする。また、この例では、予め定められた対応関係は、マスタ装置１０１の位置（Ｘ軸位置）１０１Ｘの変化に伴って、スレーブ装置１０２が或るカム曲線ｐ＝ｆ（Ｘ）に従って加速または減速するという関係であるものとする。このとき、同期演算部３１は、同期演算Ｓ１を行って、図３（Ｂ）に示すように同期演算結果値ｐ＝ｆ（Ｘ）を求める。なお、図３（Ａ）〜図３（Ｃ）では、時間軸（横軸）の表示スケールが周期ｔに比して非常に大きいため、周期ｔ毎のグラフの階段状の変化は図示されていない。
【００２９】
この同期演算Ｓ１は、例えば予め定められた対応関係が曲線（この例では、上記カム曲線）に従う演算であれば相当の計算量を要するが、マスタ装置１０１の軸数ｍがスレーブ装置１０２の軸数ｎよりも少ない場合（ｍ＜ｎの場合）は、軸数ｍが比較的少ないので、問題にはなり難い。
【００３０】
この後、図１中に示した座標変換部３２は、この同期演算Ｓ１によって得られた同期演算結果値ｐに対してマスタ装置１０１のＸＹＺ座標系からスレーブ装置１０２のｘｙｚ座標系への座標変換（これを符号Ｓ２で表す。）を行う。
【００３１】
既述のように、この例では、同期演算結果値ｐの変化がスレーブ装置１０２のｘｙｚ座標系で斜めのベクトル（ｘ，ｙ，ｚ成分がいずれもゼロでない）に相当する。座標変換部３２は、図３（Ｃ）に示すように、そのベクトルの射影（ｘ，ｙ，ｚ成分）を求める。具体的には、同期演算結果値ｐを用いて、次式により、ｘ，ｙ，ｚ成分を求める。
ｘ  ＝  Ｋｘ  ×  ｐ  ＋  Ｏｘ
ｙ  ＝  Ｋｙ  ×  ｐ  ＋  Ｏｙ
ｚ  ＝  Ｋｚ  ×  ｐ  ＋  Ｏｚ                                  …（Ｅｑ．１）
（ここで、Ｋｘ，Ｋｙ，Ｋｚは各軸の係数を表し、また、Ｏｘ，Ｏｙ，Ｏｚは各軸のオフセット値を表す。）
【００３２】
これらのｘ，ｙ，ｚ成分は、例えば図３（Ｃ）中に曲線１０２ｘ、１０２ｙ、１０２ｚで示すように得られる。これらの曲線１０２ｘ、１０２ｙ、１０２ｚは、それぞれスレーブ装置１０２のｘ軸、ｙ軸、ｚ軸がとるべき位置を表している。
【００３３】
なお、式（Ｅｑ．１）から分かるように、同期演算結果値ｐの変化は、スレーブ装置１０２のｘｙｚ座標系でｘｙ平面、ｙｚ平面、ｚｘ平面のいずれかに平行なベクトルに相当し、または、ｘ軸、ｙ軸、ｚ軸のいずれかに平行なベクトルに相当してもよい。それらの場合には、係数Ｋｘ，Ｋｙ，Ｋｚのいずれか１つまたは２つがゼロになる。
【００３４】
この座標変換Ｓ２は、ベクトルの射影（ｘ，ｙ，ｚ成分）を求めることに相当することから、スレーブ装置１０２の軸数ｎ（この例では、ｎ＝６）が比較的多くても、計算が比較的簡単で済む。したがって、この制御装置１０によれば、マスタ装置１０１の各軸への指令値ＣＶｍ（または各軸の測定された現在値ＣＶｍ′）からスレーブ装置１０２の各軸への指令値ＣＶｎを求める過程で、計算量を削減できる。
【００３５】
この後、スレーブ装置指令値演算部４０は、座標変換部３２から上記ｘ，ｙ，ｚ成分を表す信号を受けて、スレーブ装置１０２の各軸への指令値ＣＶｎを更新する。
【００３６】
この例では、スレーブ装置１０２は、ロボットアンプ１２２を介してこの指令値ＣＶｎを表す信号を受けて、図２中に矢印Ｂで示すように、マスタ装置１０１の位置の変化（すなわち、矢印Ａで示したワーク９０の移動）に同期して、カム曲線ｐ＝ｆ（Ｘ）に従って加速または減速されて移動する。
【００３７】
このように、この制御装置１０によれば、マスタ装置１０１の各軸への指令値ＣＶｍ（または各軸の測定された現在値ＣＶｍ′）からスレーブ装置１０２の各軸への指令値ＣＶｎを求める過程で、計算量を削減できる。
【００３８】
上述の制御装置１０は、実質的にコンピュータ装置（例えば、プログラマブルロジックコントローラ（programmable logic controller；PLC）など）によって構成され得る。したがって、中央演算部３０の動作として説明した制御方法（同期演算Ｓ１を行った後、座標変換Ｓ２を行う処理）は、コンピュータに実行させるためのプログラムとして構成されるのが望ましい。また、それらのプログラムは、それぞれコンピュータ読み取り可能な非一時的（non-transitory）な記録媒体に記録されるのが望ましい。その場合、記録媒体に記録されたそれらのプログラムをコンピュータ装置に読み取らせ、実行させることによって、上述の制御方法を実施することができる。
【００３９】
上の例では、マスタ装置１０１は１軸のベルトコンベアであり、また、スレーブ装置１０２は６軸のロボットであるものとした。しかしながら、これに限られるものではない。マスタ装置、スレーブ装置としては、例えばベルトコンベアのような１軸の装置、Ｘ−Ｙテーブルのような２軸の装置、４軸パラレルリンクロボットのような４軸の装置、５軸水平多関節ロボットのような５軸の装置、６軸多関節ロボットのような６軸の装置など、様々な軸数ｍ，ｎの装置が対象となり得る。ただし、この発明は、マスタ装置の軸数ｍがスレーブ装置の軸数ｎよりも少ない場合に適用される。
【００４０】
以上の実施形態は例示であり、この発明の範囲から離れることなく様々な変形が可能である。上述した複数の実施の形態は、それぞれ単独で成立し得るものであるが、実施の形態同士の組みあわせも可能である。また、異なる実施の形態の中の種々の特徴も、それぞれ単独で成立し得るものであるが、異なる実施の形態の中の特徴同士の組みあわせも可能である。
【符号の説明】
【００４１】
１０  制御装置
３０  中央演算部
３１  同期演算部
３２  座標変換部
１００  制御システム
１０１  マスタ装置
１０２  スレーブ装置
【図１】
2019155521.tif 000003
【図２】
2019155521.tif 000004
【図３】
2019155521.tif 000005