特許第6954193号(P6954193)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

<>
  • 特許6954193-制御装置、制御方法、およびプログラム 図000002
  • 特許6954193-制御装置、制御方法、およびプログラム 図000003
  • 特許6954193-制御装置、制御方法、およびプログラム 図000004
  • 特許6954193-制御装置、制御方法、およびプログラム 図000005
  • 特許6954193-制御装置、制御方法、およびプログラム 図000006
  • 特許6954193-制御装置、制御方法、およびプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6954193
(24)【登録日】2021年10月4日
(45)【発行日】2021年10月27日
(54)【発明の名称】制御装置、制御方法、およびプログラム
(51)【国際特許分類】
   B25J 13/00 20060101AFI20211018BHJP
【FI】
   B25J13/00 Z
   B25J13/00 A
【請求項の数】3
【全頁数】12
(21)【出願番号】特願2018-44549(P2018-44549)
(22)【出願日】2018年3月12日
(65)【公開番号】特開2019-155522(P2019-155522A)
(43)【公開日】2019年9月19日
【審査請求日】2020年2月28日
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100101454
【弁理士】
【氏名又は名称】山田 卓二
(74)【代理人】
【識別番号】100122286
【弁理士】
【氏名又は名称】仲倉 幸典
(72)【発明者】
【氏名】小河原 徹
(72)【発明者】
【氏名】島村 純児
【審査官】 松浦 陽
(56)【参考文献】
【文献】 特開2005−262369(JP,A)
【文献】 特開2004−130444(JP,A)
【文献】 特開平08−057780(JP,A)
【文献】 特開2002−192486(JP,A)
【文献】 米国特許出願公開第2010/0008754(US,A1)
【文献】 特開2012−194641(JP,A)
【文献】 特開2018−024044(JP,A)
【文献】 特開2017−033345(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 − 21/02
G05B 19/18 − 19/416
(57)【特許請求の範囲】
【請求項1】
マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に、一定周期で上記マスタ装置と上記スレーブ装置とを同期させて制御する制御装置であって、
上記一定周期で、上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて、上記スレーブ装置の各軸への指令値を演算によって求める演算部を備え、
上記演算部は、
上記一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の座標系から上記スレーブ装置の座標系への、位置変化を表すベクトルの射影を求めることに相当する座標変換を行う座標変換部と、
上記座標変換が行われた後、この座標変換によって得られた座標変換結果値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを、曲線で表される関数を含む予め定められた対応関係に保つための同期演算を行う同期演算部と
を備えたことを特徴とする制御装置。
【請求項2】
マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に、一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて上記スレーブ装置の各軸への指令値を演算によって求めて、上記マスタ装置と上記スレーブ装置とを同期させて制御する制御方法であって、
上記一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の座標系から上記スレーブ装置の座標系への、位置変化を表すベクトルの射影を求めることに相当する座標変換を行った後、
この座標変換によって得られた座標変換結果値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを、曲線で表される関数を含む予め定められた対応関係に保つための同期演算を行う
ことを特徴とする制御方法。
【請求項3】
請求項2に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は制御装置に関し、より詳しくは、マスタ装置とスレーブ装置とを同期させて制御する制御装置に関する。また、この発明は、そのような制御を行う制御方法およびプログラムに関する。
【背景技術】
【0002】
従来、この種の制御装置としては、例えば特許文献1(特開平6−138920号公報)に開示されているように、マスタ装置(協調基準体)とスレーブ装置(制御対象体)とを協調動作させるために、スレーブ装置への位置指令値に対して、同期データを補正量(補正同期データ)として加算する方式のものが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平6−138920号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来例とは異なり、本出願人は、一定周期(例えば、0.5msec〜1msec程度の周期)で、マスタ装置の各軸(本明細書を通して「制御軸」を意味する。)への指令値(または各軸の測定された現在値)に基づいてスレーブ装置の各軸への指令値を演算によって求めて、マスタ装置とスレーブ装置とを同期させて制御する方式を開発している。これにより、マスタ装置とスレーブ装置とを精度良く同期させることができる。
【0005】
このように一定周期でマスタ装置とスレーブ装置とを同期させて制御する場合において、さらに、マスタ装置の軸数とスレーブ装置の軸数とが互いに異なるとき、マスタ装置の各軸への指令値(または各軸の測定された現在値)からスレーブ装置の各軸への指令値を求める過程で、マスタ装置の位置とスレーブ装置の位置とを予め定められた対応関係に保つための同期演算に加えて、マスタ装置の座標系からスレーブ装置の座標系への座標変換を行う必要もある。
【0006】
ここで、仮に同期演算を行った後に座標変換を行うものとすると、例えばマスタ装置の軸数がスレーブ装置の軸数よりも少ないときに、同期演算によって得られた結果値の自由度が比較的少ないことから、スレーブ装置の位置(軌跡)の自由度が少なくなるという問題が生ずる。一方、マスタ装置の軸数がスレーブ装置の軸数よりも多いときに、マスタ装置の軸数が比較的多いことから、同期演算のための計算量が増大するという問題が生ずる。
【0007】
そこで、この発明の課題は、一定周期でマスタ装置とスレーブ装置とを同期させて制御する制御装置であって、マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に、スレーブ装置の位置の自由度を増大でき、または、同期演算のための計算量を削減できるものを提供することにある。また、この発明の課題は、そのような制御装置のための制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、この開示の制御装置は、
マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に、一定周期で上記マスタ装置と上記スレーブ装置とを同期させて制御する制御装置であって、
上記一定周期で、上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて、上記スレーブ装置の各軸への指令値を演算によって求める演算部を備え、
上記演算部は、
上記一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の座標系から上記スレーブ装置の座標系への、位置変化を表すベクトルの射影を求めることに相当する座標変換を行う座標変換部と、
上記座標変換が行われた後、この座標変換によって得られた座標変換結果値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを、曲線で表される関数を含む予め定められた対応関係に保つための同期演算を行う同期演算部と
を備えたことを特徴とする。
【0009】
本明細書で、マスタ装置、スレーブ装置の「軸」とは、それぞれ制御軸を意味する。マスタ装置、スレーブ装置としては、例えばベルトコンベアのような1軸の装置、X−Yテーブルのような2軸の装置、4軸パラレルリンクロボットのような4軸の装置、5軸水平多関節ロボットのような5軸の装置、6軸多関節ロボットのような6軸の装置など、様々な軸数の装置が対象となり得る。ただし、この発明は、マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に適用される。
【0010】
「座標変換」とは、上記マスタ装置の座標系(例えば、XYZ座標系とする。)を基準とした位置から上記スレーブ装置の座標系(例えば、xyz座標系とする。)を基準とした位置への変換を指す。例えば、マスタ装置の位置変化が上記スレーブ装置のxyz座標系で斜めのベクトル(x,y,z成分がいずれもゼロでない)に相当する場合、「座標変換」とは、そのベクトルの射影(x,y,z成分)を求めることに相当する。
【0011】
「同期演算」とは、上記一定周期で行われ、上記マスタ装置の位置と上記スレーブ装置の位置とを予め定められた対応関係に保つ演算を意味する。「予め定められた対応関係」とは、例えば、マスタ装置の位置に対して、スレーブ装置の位置がx軸、y軸に関して単純追従を行い、z軸に関して或るカム曲線に従って上下するような関係を指す。上記マスタ装置、上記スレーブ装置の「位置」とは、並進成分および/または回転成分を含む意味である。
【0012】
この開示の制御装置では、演算部は、一定周期で、上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて、上記スレーブ装置の各軸への指令値を演算によって求める。この過程で、上記演算部の座標変換部は、上記一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の座標系から上記スレーブ装置の座標系への、位置変化を表すベクトルの射影を求めることに相当する座標変換を行う。この後(上記座標変換が行われた後)、上記演算部の同期演算部は、この座標変換によって得られた座標変換結果値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを、曲線で表される関数を含む予め定められた対応関係に保つための同期演算を行う。これによって、上記スレーブ装置の各軸への指令値が求められる。すると、例えばマスタ装置の軸数がスレーブ装置の軸数よりも少ないときに、上記マスタ装置の各軸への指令値(または各軸の測定された現在値)の自由度に対して上記座標変換結果値の自由度が上記スレーブ装置の軸数まで増え得ることから、上記スレーブ装置の位置(軌跡)の自由度が増大する。したがって、上記同期演算を行う際に、上記スレーブ装置の位置(軌跡)を比較的自由に設計可能となる。一方、マスタ装置の軸数がスレーブ装置の軸数よりも多いときに、上記スレーブ装置の軸数が比較的少ないことから、上記同期演算のための計算量が削減される。このように、この開示の制御装置によれば、マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に、スレーブ装置の位置の自由度を増大でき、または、同期演算のための計算量を削減できる。
【0013】
別の局面では、この開示の制御方法は、
マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に、一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に基づいて上記スレーブ装置の各軸への指令値を演算によって求めて、上記マスタ装置と上記スレーブ装置とを同期させて制御する制御方法であって、
上記一定周期で上記マスタ装置の各軸への指令値または各軸の測定された現在値に対して、上記マスタ装置の座標系から上記スレーブ装置の座標系への、位置変化を表すベクトルの射影を求めることに相当する座標変換を行った後、
この座標変換によって得られた座標変換結果値に対して、上記マスタ装置の位置と上記スレーブ装置の位置とを、曲線で表される関数を含む予め定められた対応関係に保つための同期演算を行う
ことを特徴とする。
【0014】
この開示の制御方法によれば、マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に、スレーブ装置の位置の自由度を増大でき、または、同期演算のための計算量を削減できる。
【0015】
さらに別の局面では、この開示のプログラムは、上記制御方法をコンピュータに実行させるためのプログラムである。
【0016】
この開示のプログラムをコンピュータに実行させることによって、上記制御方法を実施することができる。
【発明の効果】
【0017】
以上より明らかなように、この開示の制御装置、制御方法およびプログラムによれば、マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に、スレーブ装置の位置の自由度を増大でき、または、同期演算のための計算量を削減できる。
【図面の簡単な説明】
【0018】
図1】この発明の一実施形態の制御装置を或る制御システムに適用したときのブロック構成を示す図である。
図2】上記制御システムの外観を模式的に示す図である。
図3】この発明の一実施形態の制御方法による動作例として、上記制御システムにおける上記制御装置の中央演算部による動作を説明する図である。
図4】上記制御装置を別の制御システムに適用したときのブロック構成を示す図である。
図5】上記制御システムの外観を模式的に示す図である。
図6】この発明の一実施形態の制御方法による別の動作例として、上記制御システムにおける上記制御装置の中央演算部による動作を説明する図である。
【発明を実施するための形態】
【0019】
以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。
【0020】
(第1実施形態)
図1は、この発明の一実施形態の制御装置10を或る制御システム100に適用したときのブロック構成を示している。また、図2は、制御システム100の外観を模式的に示している。これらの図に示すように、この制御システム100は、大別して、1軸の装置としてのマスタ装置101と、6軸の装置としてのスレーブ装置102と、これらのマスタ装置101とスレーブ装置102とを一定周期t(例えば、t=0.5msec〜1msec程度の周期)で同期させて制御する制御装置10とを備えている。
【0021】
図2に示すように、マスタ装置101は、この例ではベルトコンベアであり、制御装置10からの指令値CVmに応じてベルト101AをX軸方向に駆動するモータ111と、このモータ111と一体に構成され、モータ111の現在値(現在位置)CVm′を測定するエンコーダ112と、制御装置10からの指令値CVmおよびエンコーダ112からの現在値CVm′を表す信号に基づいてモータ111を駆動するサーボアンプ113とを含んでいる。ベルト101A上の作業対象物(以下「ワーク」と呼ぶ。)90は、矢印Aで示すように、X軸方向に移動される。
【0022】
スレーブ装置102は、この例では、6軸多関節ロボット121と、制御装置10からの指令値CVnを表す信号に応じてロボット121を駆動するロボットアンプ122とを含んでいる。
【0023】
この例では、マスタ装置101は、1軸(X軸)の自由度を有している。スレーブ装置102は、6軸x,y,z,yaw,pitch,rollの自由度を有している。すなわち、マスタ装置101の軸数m(この例では、m=1)がスレーブ装置102の軸数n(この例では、n=6)よりも少なく、m<nになっている。また、この例では、マスタ装置101のX軸は、スレーブ装置102のx,y,z軸のいずれとも一致していない。したがって、マスタ装置101の位置X(または、後述の同期演算結果値)の変化がスレーブ装置102のxyz座標系で斜めのベクトル(x,y,z成分がいずれもゼロでない)に相当する。
【0024】
図1に示すように、制御装置10は、ユーザによって指定されたプログラムを実行するプログラム実行部50と、マスタ装置指令値演算部20と、中央演算部30と、スレーブ装置指令値演算部40とを備えている。この例では、マスタ装置指令値演算部20、中央演算部30、およびスレーブ装置指令値演算部40が、演算部を構成している。
【0025】
マスタ装置指令値演算部20は、プログラム実行部50からの指示を受けて、或る軸数m(この例では、m=1)のマスタ装置101を制御するために、その軸数mと同数mの要素からなる、マスタ装置101への指令値(マスタ装置指令値)CVmを演算して作成する。このマスタ装置指令値CVmを表す信号は、マスタ装置101へ送信される。マスタ装置101のサーボアンプ113は、各軸(この例では、X軸)のマスタ装置指令値CVmを、エンコーダ112からの現在値CVm′を反映して一定周期tで更新して、モータ111を駆動する。現在値CVm′は、マスタ装置指令値演算部20へ送信される。これにより、制御装置10(特に、マスタ装置指令値演算部20)によって、マスタ装置101が制御される。
【0026】
スレーブ装置指令値演算部40は、図示しない同期命令部からの指示を受けて、或る軸数n(この例では、n=6)のスレーブ装置102を制御するために、後述の同期演算結果値に基づいて、その軸数nと同数nの要素からなる、スレーブ装置102への指令値(スレーブ装置指令値)CVnを演算して作成する。このスレーブ装置指令値CVnを表す信号は、スレーブ装置102へ送信される。スレーブ装置102のロボットアンプ122は、各軸のスレーブ装置指令値CVnを、ロボット121からの各軸の現在値CVn′を反映して一定周期tで更新して、ロボット121を駆動する。現在値CVn′は、スレーブ装置指令値演算部40へ送信される。これにより、制御装置10(特に、スレーブ装置指令値演算部40)によって、スレーブ装置102が制御される。
【0027】
中央演算部30は、座標変換部31と、同期演算部32とを含んでいる。次に、一実施形態の制御方法の動作例として、制御システム100における、この制御装置10(特に、中央演算部30)の動作について説明する。
【0028】
座標変換部31は、一定周期tでマスタ装置101の各軸(この例では、X軸)への指令値CVm(または、各軸の測定された現在値CVm′でもよい。)に対して、マスタ装置101のXYZ座標系(この例では、X座標)からスレーブ装置102のxyz座標系への座標変換(これを符号S1で表す。)を行う。
【0029】
例えば、図3(A)に示すように、マスタ装置101の位置(X軸位置)101Xが時間経過に伴ってリニアに増加しているものとする。なお、図3(A)および後述の図3(B),図3(C)では、時間軸(横軸)の表示スケールが周期tに比して非常に大きいため、周期t毎のグラフの階段状の変化は図示されていない(さらに、後述の図6(A)〜図6(C)でも同様。)。既述のように、この例では、マスタ装置101の位置Xの変化がスレーブ装置102のxyz座標系で斜めのベクトル(x,y,z成分がいずれもゼロでない)に相当する。座標変換部31は、図3(B)に示すように、そのベクトルの射影(x,y,z成分)を求める。具体的には、マスタ装置101の位置(X軸位置)101Xをpとすると、次式(Eq.1)により、射影成分Sx,Sy,Szを求める。
Sx=K×p+O
Sy=K×p+O
Sz=K×p+O …(Eq.1)
(ここで、K,K,Kは各軸の係数を表し、また、O,O,Oは各軸のオフセット値を表す。)
【0030】
なお、式(Eq.1)から分かるように、マスタ装置101の位置Xの変化は、スレーブ装置102のxyz座標系でxy平面、yz平面、zx平面のいずれかに平行なベクトルに相当し、または、x軸、y軸、z軸のいずれかに平行なベクトルに相当してもよい。それらの場合には、係数K,K,Kのいずれか1つまたは2つがゼロになる。
【0031】
この後、同期演算部32は、この座標変換S1によって得られた座標変換結果値(Sx,Sy,Sz)に対して、マスタ装置101の位置とスレーブ装置102の位置とを予め定められた対応関係に保つための同期演算(これを符号S2で表す。)を行う。
【0032】
この例では、予め定められた対応関係は、マスタ装置101の位置(X軸位置)101Xの変化に伴って、スレーブ装置102の位置がx軸、y軸に関して単純追従を行い、z軸に関して或るカム曲線q=f(Sz)に従って上下するという関係であるものとする。このとき、同期演算S2による結果値は、例えば図3(C)中に直線102x,102y、曲線102zで示すように得られる。これらの直線102x,102y、曲線102zは、それぞれスレーブ装置102のx軸、y軸、z軸がとるべき位置を表している。
【0033】
この後、スレーブ装置指令値演算部40は、同期演算部32から上記直線102x,102y、曲線102zを表す信号を受けて、スレーブ装置102の各軸への指令値CVnを更新する。
【0034】
この例では、スレーブ装置102は、ロボットアンプ122を介してこの指令値CVnを表す信号を受けて、図2中に矢印Bで示すように、マスタ装置101の位置の変化(すなわち、矢印Aで示したワーク90の移動)に同期して、x軸、y軸に関して単純追従を行い、z軸に関してカム曲線q=f(Sz)に従って上下する。
【0035】
このように動作する場合、この例のようにマスタ装置101の軸数m(この例では、m=1)がスレーブ装置102の軸数n(この例では、n=6)よりも少ないときに、マスタ装置101の各軸(この例では、X軸)への指令値CVm(または各軸の測定された現在値CVm′)の自由度に対して座標変換結果値(Sx,Sy,Sz)の自由度がスレーブ装置102の軸数nまで増え得ることから、スレーブ装置102の位置(軌跡)の自由度が増大する。したがって、同期演算S2を行う際に、スレーブ装置102の位置(軌跡)を比較的自由に設計可能となる。
【0036】
(第2実施形態)
図4は、上述の制御装置10を別の制御システム200に適用したときのブロック構成を示している。また、図5は、制御システム200の外観を模式的に示している。これらの図に示すように、この制御システム200は、大別して、6軸の装置としてのマスタ装置201と、2軸の装置としてのスレーブ装置202と、上述の制御装置10とを備えている。この例では、制御装置10は、これらのマスタ装置201とスレーブ装置202とを一定周期t(例えば、t=0.5msec〜1msec程度の周期)で同期させて制御する。
【0037】
図5に示すように、マスタ装置201は、この例では、6軸多関節ロボット211と、制御装置10からの指令値CVmを表す信号に応じてロボット211を駆動するロボットアンプ212とを含んでいる。ロボットアンプ212は、ロボット211の各軸(この例では、X,Y,Z,Yaw,Pitch,Roll)の測定された現在値CVm′を表す信号を、制御装置10のマスタ装置指令値演算部20へ送信する。この例では、ロボット211に把持されたワーク190は、矢印A1で示すような曲線に沿って移動される。
【0038】
スレーブ装置202は、この例ではX−Yテーブル220であり、モータ・エンコーダ一体型の2つのリニアスライダ221,222と、制御装置10からの指令値CVnを表す信号に応じてそれぞれリニアスライダ221,222を駆動する2つのサーボアンプ223,224とを含んでいる。
【0039】
制御装置10は、先の例と同様に構成されている。この例では、マスタ装置指令値演算部20は、プログラム実行部50からの指示を受けて、或る軸数m(この例では、m=6)のマスタ装置201を制御するために、その軸数mと同数mの要素からなる、マスタ装置201への指令値(マスタ装置指令値)CVmを演算して作成する。このマスタ装置指令値CVmを表す信号は、マスタ装置201へ送信される。マスタ装置201のロボットアンプ212は、各軸のマスタ装置指令値CVmを、ロボット211からの各軸の現在値CVm′を反映して一定周期tで更新して、ロボット211を駆動する。現在値CVm′は、マスタ装置指令値演算部20へ送信される。これにより、制御装置10(特に、マスタ装置指令値演算部20)によって、マスタ装置201が制御される。
【0040】
スレーブ装置指令値演算部40は、図示しない同期命令部からの指示を受けて、或る軸数n(この例では、n=2)のスレーブ装置202を制御するために、後述の同期演算結果値に基づいて、その軸数nと同数nの要素からなる、スレーブ装置202への指令値(スレーブ装置指令値)CVnを演算して作成する。このスレーブ装置指令値CVnを表す信号は、スレーブ装置202へ送信される。スレーブ装置202のサーボアンプ223,224は、各軸(この例では、x,y軸)のスレーブ装置指令値CVnを、リニアスライダ221,222からの各軸の現在値CVn′を反映して一定周期tで更新して、リニアスライダ221,222を駆動する。現在値CVn′は、スレーブ装置指令値演算部40へ送信される。これにより、制御装置10(特に、スレーブ装置指令値演算部40)によって、スレーブ装置202が制御される。
【0041】
この例では、マスタ装置201は、6軸X,Y,Z,Yaw,Pitch,Rollの自由度を有している。スレーブ装置202は、2軸(x,y軸)の自由度を有している。すなわち、マスタ装置201の軸数m(この例では、m=6)がスレーブ装置202の軸数n(この例では、n=2)よりも多く、m>nになっている。また、この例では、マスタ装置101の6軸X,Y,Z,Yaw,Pitch,Rollは、スレーブ装置202のx,y軸のいずれとも一致していない。
【0042】
次に、一実施形態の制御方法の別の動作例として、制御システム200における、制御装置10(特に、中央演算部30)の動作について説明する。
【0043】
座標変換部31は、一定周期tでマスタ装置201の各軸(この例では、X,Y,Z,Yaw,Pitch,Roll)への指令値CVm(または、各軸の測定された現在値CVm′でもよい。)に対して、マスタ装置201のXYZ座標系からスレーブ装置202のxyz座標系への座標変換(これを符号S1で表す。)を行う。
【0044】
例えば、図6(A)に示すように、マスタ装置201のX軸位置201X、Y軸位置201Y、Z軸位置201Zが時間経過に伴って変化しているものとする。この例では、X軸位置201Xは、最初に増加し、途中から一定になっている。Y軸位置201Yは、最初は一定で、途中から減少している。Z軸位置201Zは、最初に減少し、途中から一定(略ゼロ)になっている。この例では、座標変換部31は、図6(B)に示すように、マスタ装置201のX軸位置201X、Y軸位置201YをそれぞれX、Yとして、次式(Eq.2)により、スレーブ装置202の座標系でのx,y成分(これをSx1,Sy1とする。)を求める。
Sx1=Kxx×X+Kxy×Y+O
Sy1=Kyx×X+Kyy×Y+O …(Eq.2)
(ここで、Kxx,Kxy,Kyx,Kyyは各軸の係数を表し、また、O,Oは各軸のオフセット値を表す。)
【0045】
なお、この式(Eq.2)は、マスタ装置201のX軸位置201X、Y軸位置201Yに対して、Z軸周りの回転とX,Y軸方向への並行移動とを行う計算である。
【0046】
この後、同期演算部32は、この座標変換S1によって得られた座標変換結果値(Sx1,Sy1)に対して、マスタ装置201の位置とスレーブ装置202の位置とを予め定められた対応関係に保つための同期演算(これを符号S2で表す。)を行う。
【0047】
この例では、予め定められた対応関係は、マスタ装置201(ロボット211)によって運ばれるワーク190の真下に位置するように、スレーブ装置202(X−Yテーブル220)が加速して追い付き、追いついた後はワーク190と同期して移動するという関係であるものとする。このとき、同期演算S2による結果値は、例えば図6(C)中に太い実線で描かれた曲線202x,202yで示すように得られる。これらの曲線202x,202yは、それぞれスレーブ装置202のx軸、y軸がとるべき位置を表している。なお、図6(C)中の細い実線は、座標変換結果値(Sx1,Sy1)のうち、ワーク190の真下にスレーブ装置202(X−Yテーブル220)が追いつく前の部分を、比較のために表している。
【0048】
この後、スレーブ装置指令値演算部40は、同期演算部32から上記曲線202x、202yを表す信号を受けて、スレーブ装置202の各軸への指令値CVnを更新する。
【0049】
この例では、スレーブ装置202は、サーボアンプ223,224を介してこの指令値CVnを表す信号を受けて、図5中に矢印B1で示すように、マスタ装置201の位置の変化(すなわち、矢印A1で示したワーク190の移動)に同期して、スレーブ装置202(X−Yテーブル220)がx軸、y軸に関して加速して追い付き、追いついた後はワーク190と同期して移動する。
【0050】
このように動作する場合、この例のようにマスタ装置201の軸数m(この例では、m=6)がスレーブ装置202の軸数n(この例では、n=2)よりも多いときに、スレーブ装置202の軸数nが比較的少ないことから、同期演算S2のための計算量が削減される。
【0051】
以上より明らかなように、この制御装置10によれば、マスタ装置の軸数とスレーブ装置の軸数とが互いに異なる場合に、スレーブ装置の位置の自由度を増大でき、または、同期演算のための計算量を削減できる。
【0052】
上述の制御装置10は、実質的にコンピュータ装置(例えば、プログラマブルロジックコントローラ(programmable logic controller;PLC)など)によって構成され得る。したがって、中央演算部30の動作として説明した制御方法(座標変換S1を行った後、同期演算S2を行う処理)は、コンピュータに実行させるためのプログラムとして構成されるのが望ましい。また、それらのプログラムは、それぞれコンピュータ読み取り可能な非一時的(non-transitory)な記録媒体に記録されるのが望ましい。その場合、記録媒体に記録されたそれらのプログラムをコンピュータ装置に読み取らせ、実行させることによって、上述の制御方法を実施することができる。
【0053】
上述の第1実施形態では、マスタ装置101は1軸のベルトコンベア、スレーブ装置102は6軸のロボットであるものとした。また、第2実施形態では、マスタ装置201は6軸のロボット、スレーブ装置202は2軸のX−Yテーブルであるものとした。しかしながら、これに限られるものではない。マスタ装置、スレーブ装置としては、例えばベルトコンベアのような1軸の装置、X−Yテーブルのような2軸の装置、4軸パラレルリンクロボットのような4軸の装置、5軸水平多関節ロボットのような5軸の装置、6軸多関節ロボットのような6軸の装置など、様々な軸数m,nの装置が対象となり得る。ただし、この発明は、マスタ装置の軸数mとスレーブ装置の軸数nとが互いに異なる場合に適用される。
【0054】
以上の実施形態は例示であり、この発明の範囲から離れることなく様々な変形が可能である。上述した複数の実施の形態は、それぞれ単独で成立し得るものであるが、実施の形態同士の組みあわせも可能である。また、異なる実施の形態の中の種々の特徴も、それぞれ単独で成立し得るものであるが、異なる実施の形態の中の特徴同士の組みあわせも可能である。
【符号の説明】
【0055】
10 制御装置
30 中央演算部
31 座標変換部
32 同期演算部
100,200 制御システム
101,201 マスタ装置
102,202 スレーブ装置
図1
図2
図3
図4
図5
図6